
/* =============================== */
/*  RESET & BASE                   */
/* =============================== */

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html, body {
  overflow-x: hidden;
}

body {
  -webkit-font-smoothing: antialiased;
   background-color: var(--beige-200);
}


/* ================================     FUENTES    ================================ */
/* =======================
  Onest
   ======================= */
@font-face {
  font-family: 'Onest';
  src: url('../fonts/Onest-Black.ttf') format('truetype');
  font-weight: 900; /* Black */
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Onest';
  src: url('../fonts/Onest-Bold.ttf') format('truetype');
  font-weight: 700; /* Bold */
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Onest';
  src: url('../fonts/Onest-Regular.ttf') format('truetype');
  font-weight: 400; /* Regular */
  font-style: normal;
  font-display: swap;
}
/* =======================
   QUICKSAND
   ======================= */
@font-face {
  font-family: 'Quicksand';
  src: url('../fonts/Quicksand-Medium.ttf') format('truetype');
  font-weight: 500; /* Medium */
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Quicksand';
  src: url('../fonts/Quicksand-SemiBold.ttf') format('truetype');
  font-weight: 600; /* semiBold */
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Quicksand';
  src: url('../fonts/Quicksand-Bold.ttf') format('truetype');
  font-weight: 700; /* Bold */
  font-style: normal;
  font-display: swap;
}


/* Igual para Raleway y Quicksand */

/* ================================     VARIABLES    ================================ */
:root {
  /*  Paleta de colores */
  --color-background: #F9F9F9;
  --color-text: #333333;
  /* Tipografías */
  
  --font-headings: 'Onest', sans-serif;
  --font-body: 'Onest', sans-serif;
  --font-ui: 'Quicksand', sans-serif; 

  --font-Extrabold: 900;
  --font-bold: 700;
  --font-medium: 600;
  --font-regular: 500;

      --h1-size: 2rem;           /* 32px */
    --h2-size: 1.4rem;         /* 24px */
    --h3-size: 1.25rem;        /* 20px */
    --h4-size: 1.125rem;       /* 18px */
    --h5-size: 1rem;           /* 16px */
    --h6-size: 0.9375rem;      /* 15px */

    --subtitle1-size: 1.10rem;    /* 14px */
    --subtitle2-size: 1.25rem;     /* 12px */
    --subtitle3-size: 0.6875rem;   /* 11px */

    --body1-size: 1.05rem;        /* 14px */
    --body2-size: 1rem;         /* 12px */

    --button1-size: 1rem;      /* 14px */
    --button2-size: 1rem;       /* 12px */

    --caption-size: 0.6875rem;     /* 11px */
    --overline-size: 0.75rem;      /* 12px */
}
  /*STYLES tipography*/

  h1{font-family: var(--font-headings);
    font-size: var(--h1-size);
    font-weight: var(--font-Extrabold);
    color: var(--brown-800);
  }

  h2{
    font-family: var(--font-headings);
    font-size: var(--h2-size);
    font-weight: var(--font-Extrabold);
    color: var(--brown-800);
  }
  h3{
    font-family: var(--font-headings);
    font-size: var(--h3-size);
    font-weight: var(--font-Extrabold);
    line-height: 2rem;
    color: black;
  }
  
  h4{
    font-family: var(--font-headings);
    font-size: var(--h4-size);
    font-weight: var(--font-bold);
   }
  
  h5{
    font-family: var(--font-ui);
    font-size: var(--h5-size);
    font-weight: var(--font-bold);
  } 

  .subtitle{
    font-family: var(--font-ui);
    font-size: var(--subtitle1-size);
    font-weight: var(--font-bold);
  }
  .light{
    color:white;
  }
  .cta{
    font-family: var(--font-ui);
    font-size: var(--subtitle2-size);
    font-weight: var(--font-bold);
  }

  .cta-2{
    font-family: var(--font-ui);
    font-size: var(--h4-size);
    font-weight: var(--font-bold);
  }

  .cta-3{
    font-family: var(--font-ui);
    font-weight: var(--font-bold);
 }

 .emphasis{
  font-family: var(--font-body);
  font-weight: var(--font-bold);
  line-height: 1.92rem;
 }

  p{
    font-family: var(--font-body);
    font-size: var(--body1-size);
    font-weight: var(--font-regular);
    line-height: 1.92rem;
  }
/* Media Query para Mobile */


@media (min-width: 769px)  {
  :root {
  /* Tamaños en rem (Desktop) */
--h1-size: 2.5rem;        /* 40px */
--h2-size: 1.85rem;          /* 32px */
--h3-size: 1.5rem;        /* 24px */
--h4-size: 1.15rem;       /* 20px */
--h5-size: 1.05rem;      /* 18px */
--h6-size: 1rem;          /* 16px */
--subtitle1-size: 1.20rem;   /* 15px */
--subtitle2-size: 1.17rem;   /* 13px */
--subtitle3-size: 1.17rem;   /* 11px */
--body1-size: 1.15rem;            /* 16px */
--body2-size: 0.875rem;        /* 14px */
--button1-size: 1rem;     /* 15px */
--button2-size: 1rem;      /* 14px */
--caption-size: 0.8125rem;     /* 13px */
--overline-size: 0.8125rem;    
  }
}
/*--------COLORES---------*/

:root {
/* ------------------------------------------------------ */
/* PRIMARY — Base #C8602D */
/* ------------------------------------------------------ */
--primary-050: #F2D9D1;
--primary-100: #EBC5B8;
--primary-200: #E0A48F;
--primary-300: #D48366;
--primary-400: #C8602D;  /* Base */
--primary-500: #A95227;
--primary-600: #8B4421;
--primary-700: #6D351A;
--primary-800: #4F2713;
--primary-900: #32190C;


/* ------------------------------------------------------ */
/* SECONDARY — Base #80C7BC */
/* ------------------------------------------------------ */
--secondary-050: #E6F4F2;
--secondary-100: #D2EBE7;
--secondary-200: #B6DDD6;
--secondary-300: #9ACFC6;
--secondary-400: #80C7BC; /* Base */
--secondary-500: #66A59C;
--secondary-600: #4C837C; /* Tono más oscuro → CTA Primary */
--secondary-700: #33615D;
--secondary-800: #19403D;
--secondary-900: #0A2523;


/* ------------------------------------------------------ */
/* YELLOW — Base #F5B335 */
/* ------------------------------------------------------ */
--yellow-050: #FFF3D8;
--yellow-100: #FFE4AF;
--yellow-200: #FFD37F;
--yellow-300: #FFC24F;
--yellow-400: #F5B335; /* Base */
--yellow-500: #D9962A;
--yellow-600: #BD7A1F;
--yellow-700: #A15F14;
--yellow-800: #84450A;
--yellow-900: #6A3005;


/* ------------------------------------------------------ */
/* NEUTRAL BROWN — Base #5F504D */
/* ------------------------------------------------------ */
--brown-050: #EAE7E6;
--brown-100: #D6D1CF;
--brown-200: #B8B0AE;
--brown-300: #9A8F8C;
--brown-400: #7C6E6A;
--brown-500: #5F504D; /* Base */
--brown-600: #4C413F;
--brown-700: #3A3231;
--brown-800: #282323;
--brown-900: #191616;

/* ------------------------------------------------------ */
/* NEUTRAL BEIGE — Base #FFFDF8 */
/* ------------------------------------------------------ */
--beige-050: #ffffff;
--beige-100: #fffefb;
--beige-200: #fffdf8; /* Base */
--beige-300: #f9f6ef;
--beige-400: #f3eee6;
--beige-500: #e5ded5;
--beige-600: #c8c2bb;
--beige-700: #aaa6a0;
--beige-800: #8d8a86;
--beige-900: #6f6d6a;

/* ------------------------------------------------------ */
/* CTA COLORS */
/* ------------------------------------------------------ */
--cta-primary: #4a6924;/* #4C837C */
--cta-secondary: #ef959e;
--cta-tertiary: #4a6924;


/* COLORES MAIN */
--color-text: #0d0d0d;
}



.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}



/* ================================     LAYOUT    ================================ */

main{
  min-width: 386px; 
  margin: 8rem auto 0;
}
/* ===== HEADER ===== */


/* -------------------------------------- */
/* HEADER – Transparente / Sticky / Scroll */
/* -------------------------------------- */
/* ===== HEADER BASE ===== */
header {
  min-width: 360px;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  padding: 1rem 2rem;
  z-index: 9999999;
   background-color: var(--beige-200);
  transition: background-color .35s ease, backdrop-filter .35s ease, box-shadow .35s ease;
}

/* SCROLLED */
header.scrolled {
  min-width: 360px;
  background-color: white;
  backdrop-filter: blur(6px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.247);
}

/* Layout nav */
.nav-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  max-width: 1600px;
  margin:auto;
}

.nav-left,
.nav-right {
  display: flex;
  align-items: center;
}

.nav-right {
  justify-content: flex-end;
}

.nav-bar-desktop{
  display:none;
}

/* LOGO CENTRADO */
.nav-center {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  justify-content: center;
  pointer-events: none;
}

.nav-center a {
  pointer-events: auto;
}

/* LOGOS */

.logo{
  width: 100px;
}





/* Button menu hamburguer */

.header-style .btn-menu-mobile{
  border:none;
  padding:0.5rem;
  cursor:pointer;
  background-color: transparent;
  border-radius: 10px;
  }



header.scrolled .btn-menu-mobile{
  background-color: transparent;
  color: white;
}


/* Menu mobile dropdown */
.mobile-dropdown.active {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.mobile-dropdown{
background-color: var(--yellow-300);
  width: auto;
  visibility: hidden;
  position: fixed;
  width: 90%;
  height: 100vh;
  top: 0;
  left: 0; 
  flex-direction: column;
  min-width: 200px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  z-index: 500;
  opacity: 0;
  transform: translateX(-100%);
  transition: transform 0.4s ease, opacity 0.4s ease;
  pointer-events: none;
  list-style: none;  
  z-index: 9999999;
}

.mobile-dropdown::after{  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url(../img/vectors/vector_emoji.svg);
  background-repeat: no-repeat;
  background-size: 100%; /* o contain, según el diseño */
  background-position: left bottom;
  opacity: 0.15; /* ajusta según el efecto deseado */
  pointer-events: none;
  z-index: 0;
}

.mobile-dropdown .mobile-nav-menu{
  list-style: none;
  padding: 2rem;
  display: flex;
 flex-direction: column;
 justify-content: right;
 gap:2rem;
}


.mobile-dropdown .mobile-nav-menu .btn-nav-menu-mobile{
  display: block;
  padding: 1rem 1.5rem;
  text-decoration: none;
  font-family: var(--font-ui);
  font-size: 1.125rem;
  font-weight: var(--font-bold);
  color:black;
  background-color: transparent;
  border:none;
}


.mobile-dropdown .mobile-nav-menu .btn-nav-menu-mobile:hover{
  background-color: var(--secondary-200);
  border-radius: 10rem;
}

.mobile-dropdown .close-mobile-dropdown{
  position: relative;
  top:1rem;
  right: -18rem;
  background-color: transparent;
  padding: 1rem;
  border:none;

}

.mobile-dropdown.closing {
  transform: translateX(-100%);
  opacity: 0;
  transition: transform 0.4s ease, opacity 0.4s ease;
}
/* ================================     FOOTER    ================================ */

.section-footer{
   width: 100%;
  height: auto;
 padding: 6rem 0;
  background-color: var(--primary-500);
}

.footer-container{
  display: flex;
  width: 80%;
  height: auto;
  margin:auto;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;

}

.section-footer .footer-menu{
  display: flex;
  flex-direction: column;
  gap:1rem;
  justify-content: center;
  align-items: center;
  text-align: center;


}

.container-menu-1,
.container-menu-2{
  display: flex;
  flex-direction: column;
  justify-content: stretch;
  align-items: center;
  text-align: center;
  margin-top: 1rem;
  list-style: none;
}

.section-footer .footer-menu li a{
  display: block;
  padding: 0.5rem;
  color: white;
  text-decoration: none;
  font-family: var(--font-ui);
   font-weight: var(--font-medium);
}


.section-footer .footer-menu li a:hover{
  padding: 0.5rem;
  color: black;
  background-color: var(--yellow-100);
  border-radius: 10rem;
 
}

.section-footer .footer-menu li a:active{
  color:black;
  background-color: var(--yellow-100);
  box-shadow: inset 2px 2px 5px #a15f149a;
}


.footer-contact-content{
  width: 100%;
  display: flex;
  gap:3rem;
  justify-content: center;
  align-items: center;
    margin:4rem 0;
}

.footer-contact-content .rrss-content,
.footer-contact-content .footer-insta{
width: auto;
}



.box-logo-copy{
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  gap:3rem;
  padding: 0 3rem;
}

.box-logo-copy .logo{
  margin-bottom: 3rem;
}

.footer-copy{
  font-size: 0.75rem;
  font-family: var(--font-body);
  font-weight: var(--font-regular);
  color: white;
}

.btn-insta{
  display: flex;
  gap:0.25rem;
  align-items: center;
  justify-content: center;
}


/* ================================     BUTTONS    ================================ */


.btn{
  font-family: var(--font-ui);

  text-decoration: none;
  font-size: var(--button1-size);
  padding:16px 20px;
  justify-content: center;
  text-align: center;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  border-radius: 10px;
  border:none;
  cursor: pointer;

}


.btn-small{
  display: flex;
  width: 175px;
  height: 48px;

 

}

.btn-large{
  width: 257px;
  height: 56px;
}


/* Variantes */

/*Button primary*/

.btn--primary {
  background-color: var(--cta-primary);
  color: rgb(255, 255, 255);
}
.btn--primary:hover{
  background-color: #5d7e35;
}

.btn--primary:active{
  background-color: #365017;
  box-shadow: inset 2px 3px 5px  #324917;

}

.btn--disabled{
  background-color: rgb(201, 201, 201);
  color:rgb(135, 135, 135);
  font-weight: var(--font-regular);
}

/*Button secondary*/

.btn--secondary {
  background-color: var(--secondary-400);
  color: black;
}
.btn--secondary:hover{
  background-color:#97d9cf; 
}

.btn--secondary:active{
  background-color: #529d92;
  box-shadow: inset 2px 3px 5px #324917;
}

.btn--secondary:disabled{
  background-color: gray;
}

/*Button tertiary*/

.btn--tertiary {
background-color: var(--cta-primary);
  color: rgb(255, 255, 255);
}
.btn--tertiary:hover{
    background-color: #5d7e35;
}

.btn--tertiary:active{
    background-color: #365017; 
  box-shadow: inset 2px 3px 5px  #324917;
}




.cta-beige{
  background-color: var(--neutral-100);
}

#scrollToTop {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  background-color: var(--yellow-400);
  color: white;
  border: none;
  border-radius: 50%;
  width: 48px;
  height: 48px;
  font-size: 20px;
  cursor: pointer;
  z-index: 9999;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.349);
  justify-content: center;
  align-items: center;
  transition: opacity 0.3s ease;
}

/* ================================     BREADCRUMBS    ================================ */

.breadcrumbs{
  max-width: 100%;
  display: flex;
  gap:0.5rem;
  padding: 2rem 1rem;
}
.breadcrumbs a{
  display: block;
  font-family: var(--font-ui);
  color:var(--grey-800);
  text-decoration: none;
}
.breadcrumbs a:hover{
  font-family: var(--font-ui);
  color:var(--secondary-700);
}

.breadcrumbs span{
  font-family: var(--font-ui);
  color:var(--secondary-900);
  text-decoration: none;
   font-weight: var(--font-bold);

}

.breadcrumbs button{
  font-family: var(--font-ui);
  color:var(--secondary-700);
  text-decoration: none;
  border:none;
  background-color: transparent;
}


.breadcrumbs button:hover{
  font-family: var(--font-ui);
  color:var(--secondary-900);
  font-weight: var(--font-bold);

}


/*=================================== COOKIES  ==================================*/
/* ============================
   BANNER DE COOKIES
   ============================ */
.cookie-banner {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 90%;
  height: 300px;
  max-height:600px;
  max-width: 500px; /* tamaño más razonable para todos los dispositivos */
  padding: 24px 28px;
  background: var(--beige-100);
   color: #fff;
  border-radius: 20px;
  display: none;  
 flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  z-index: 9999;
  box-shadow: 0 0 30px rgba(0, 0, 0, 0.564);
}

.cookie-banner p {
  font-family: var(--font-ui);
   font-weight: var(--font-bold);
  text-align:left;
  max-width: 600px;
  margin: 0;
  line-height: 1.4;
}

.cookie-buttons {
  width: 100%;
  display: flex;
  justify-content: center;
  margin: 2rem auto;
  display: flex;
  gap: 10px;
}

.cookie-buttons button {
  padding: 8px 16px;
  border: none;
  cursor: pointer;
  border-radius: 6px;
  font-size: 14px;
  transition: 0.2s;
}

#acceptCookies {
  background: #92d294;
  color: black;
}

#rejectCookies {
  background: #fd734c;
  color: black;
}

#configCookies {
  background: #5a5a5a;
  color: white;
}

.cookie-buttons button:hover {
  opacity: 0.85;
}

/* ============================
   MODAL CONFIGURACIÓN COOKIES
   ============================ */
.cookie-config-modal {
  display: none; /* JS will change to flex */
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(169, 169, 169, 0.498);
  justify-content: center;
  align-items: center;
  z-index: 9999999;
}

.cookie-config-content {
  background: #fff;
  padding: 28px;
  width: 340px;
  border-radius: 10px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.25);
  animation: fadeIn 0.25s ease;
}

.cookie-config-content h3 {
  margin-top: 0;
  margin-bottom: 15px;
  font-size: 18px;
  color: #222;
}

.cookie-config-content label {
  font-family: var(--font-ui);
  font-size: 14px;
}

.config-buttons {
  margin-top: 20px;
  display: flex;
  gap: 10px;
}

.config-buttons button {
  padding: 8px 14px;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-size: 14px;
}

#saveConfig {
  background: #4caf50;
  color: #fff;
}

#closeConfig {
  background: #777;
  color: #fff;
}

/* Animación suave */
@keyframes fadeIn {
  from { transform: translateY(10px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}



/* ================================     ANIMATIONS SCROLL    ================================ */

/* ===== Animacion secciones al hacer scroll ===== */

/* Animación desde abajo */
.reveal-bottom {
  opacity: 0;
  transform: translateY(50px);
  transition: all 0.6s ease-out;
}
.reveal-bottom.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Animación desde la izquierda */
.reveal-left {
  opacity: 0;
  transform: translateX(-50px);
  transition: all 0.6s ease-out;
}
.reveal-left.visible {
  opacity: 1;
  transform: translateX(0);
}

/* Animación desde la derecha */
.reveal-right {
  opacity: 0;
  transform: translateX(50px);
  transition: all 0.6s ease-out;
}
.reveal-right.visible {
  opacity: 1;
  transform: translateX(0);
}

.reveal-bottom.visible {
  transition-delay: 0.2s;
}

.reveal-left.visible {
  transition-delay: 0.3s;
}

.reveal-right.visible {
  transition-delay: 0.3s;
}


.reveal-left.subrayado::after {
  content: "";
  display: block;
  width: 50%;
  height: 8px;
  margin: 2rem auto 0;
  background-color: var(--cta-tertiary);
  border-radius: 50% 40% 60% 30% / 40% 60% 30% 50%;
  transform: rotate(-1.5deg) scaleX(1.1);
  opacity: 0.85;
}



/* ================================     SECTION INDEX REVIEWS / NEWSLETTER    ================================ */



/* ===== HERO ===== */

.hero-container {
  position:relative;
  display:flex;
  flex-direction: column;
justify-content: center;
align-items: flex-start;

  width: 100%;
  max-width:1800px;

  z-index: 18;
  margin:auto;
}

.hero-content{

  display: flex;
  flex-direction: column;
  justify-content: stretch;
  align-items: center;
  max-width: 600px;
  width: 100%;
  padding: 1rem;
  height: 100%;
  margin:4rem auto auto;
}

.hero-cta-button{
  padding: 1rem;
}



/* BACKGROUND */
.hero-index{
  width: 100%;
  height: 100%;
}

.hero-bg {
  inset: 0;
  z-index: 0;
}

.hero-bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover; 

}

/* El source NO puede llevar object-fit, elimínalo */

/* ================================     HERO    ================================ */

.hero-text{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap:2rem;
  margin-bottom: 3rem;


}


.hero-text-cta{ 
  width: 100%;
  padding: 1rem 1rem;
  background-color: rgba(255, 255, 255, 0.826);
  border-radius: 10px;
  margin:auto;
  z-index: 10;
}

.hero-tagline{
    letter-spacing: 5px;
}

/* ================================ MODAL CONTACT ================================ */

body.modal-open {
  overflow: hidden;
  height: 100vh;
  touch-action: none; /* evita que se mueva el fondo con el dedo */
}


.modal-contact {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.45);
  backdrop-filter: blur(6px);
  display: flex;
  justify-content: center;
  align-items: flex-start; /* siempre empieza arriba para evitar cortes */
  padding: 2rem 1rem;
  z-index: 9999999;
  overflow-y: auto; /* scroll del overlay si es necesario */
  transition: opacity .25s ease;
}

.modal--oculto {
  opacity: 0;
  pointer-events: none;
}

.modal--visible {
  opacity: 1;
  pointer-events: auto;
}

/* ============================== CONTENIDO DEL MODAL =============================== */
.modal-content-contact {
  background: #fff;
  padding: 1.8rem;
  border-radius: 18px;
  width: 100%;
  max-width: 700px;
  margin: 3rem auto;


  overflow-y: auto;

  box-shadow: 0 18px 40px rgba(0,0,0,0.15);
  position: relative;

  /* Animación */
  transform: translateY(20px);
  opacity: 0;
  transition: all .35s ease;
}

.modal--visible .modal-content-contact {
  transform: translateY(0);
  opacity: 1;
}



.modal-intro{
  margin-bottom: 1.5rem;
}


.modal--visible .modal-content-contact {
  transform: translateY(0);
  opacity: 1;
}

.modal-content-contact h2 {
  text-align: center;
  margin-bottom: 1rem;
  color: var(--primary-700);
  font-size: clamp(1.4rem, 2vw, 1.8rem);
}

/********************************************
  FORMULARIO — MÓVIL (1 COLUMNA)
********************************************/
.form-contact {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

.box-input label {
  display: block;
  font-weight: 600;
  margin-bottom: .3rem;
  color: var(--brown-900);
  font-family: var(--font-ui);
}

.box-input input,
.box-input textarea {
  width: 100%;
  padding: .7rem;
  font-size: 1rem;
  border: 2px solid #ddd;
  border-radius: 8px;
  font-family: var(--font-ui);
  transition: border .25s ease;
}

.box-input input:focus,
.box-input textarea:focus {
  border-color: var(--secondary-300);
  background: #fafafa;
  outline: none;
}

.box-input .error-form,
.box-input-contact .error-form,
.checkbox-group .error-form  {
  font-size: .85rem;
  color: #d9534f;
  margin-top: .25rem;
  font-family: var(--font-ui);
}

/********************************************
  CHECKBOX PRIVACIDAD
********************************************/
.checkbox-group label {
  display: flex;
  gap: .6rem;
  align-items: center;
  line-height: 1.3;
  font-size: .9rem;
  font-family: var(--font-ui);
}

.checkbox-group .error-form{
  font-family: var(--font-ui);
}

.checkbox-group input[type="checkbox"] {
  transform: scale(1.2);
}

.button-form-contact {
  display: flex;
  justify-content: center;
  margin-top: .5rem;
}

/********************************************
  BOTÓN CERRAR
********************************************/
.close-modal,
.close-modal-mssg,
.modal-close{
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: var(--yellow-300);
  border: none;
  border-radius: 50%;
  width: 38px;
  height: 38px;
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: .2s ease;
}

.close-modal:hover,
.close-modal-mssg:hover,
.modal-close:hover{
  transform: scale(1.08);
  background: rgb(255, 220, 67);
}

  .box-checkbox-button{
    display: flex;
    flex-direction: column;
    gap:3rem;
    align-items: center;
    justify-content: space-between;
  }

  .close-modal:active,
.close-modal-mssg:active {

  background: rgb(205, 175, 41);
  box-shadow: inset 2px 2px 2px rgb(133, 113, 25);
}

/* MENSAJE DE SE ENVIO CORRECTAMENTE*/
/* MENSAJE DE SE ENVIO CORRECTAMENTE */

.success-modal {
  padding: 1rem;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.45);
  justify-content: center;
  align-items: center;
  z-index: 999999999;
  backdrop-filter: blur(4px);
}

/* Cuando tiene hidden → no se muestra */
.success-modal[hidden] {
  display: none;
}

/* Cuando NO tiene hidden → se muestra como flex */
.success-modal:not([hidden]) {
  display: flex;
}

.success-modal-content {
  position:relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap:1rem;
  background: white;
  padding: 2rem 2.5rem;
  border-radius: 16px;
  text-align: center;
  width: 100%;
  max-width: 600px;
  box-shadow: 0 8px 28px rgba(0,0,0,.2);
  animation: fadeIn .3s ease;
}

.success-modal-content h3 {
  margin-bottom: 1rem;
  color: var(--primary-700);
}

.container-img-success{
  width: 300px;
  max-width: 400px;
}

.container-img-success img{
  width:100%;
  object-fit: cover;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}


/* CHECKBOX SERVICES*/
/* ===== Grupo de servicios ===== */
.services-checkbox-group {
  border: none;
  padding: 0;
  margin: 0 0 1.5rem;
}

.services-checkbox-group legend {
font-family: var(--font-ui);    
  font-weight: var(--font-bold);
  margin-bottom: 0.75rem;
  font-size: 0.95rem;
}

/* ===== Cada opción ===== */
.services-checkbox-group label {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  cursor: pointer;
  margin-bottom: 0.6rem;
  font-size: 0.9rem;
  line-height: 1.4;
}

/* ===== Ocultar checkbox nativo ===== */
.services-checkbox-group input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  margin: 0;
  width: 18px;
  height: 18px;
  border: 1px solid grey; /* ajusta color */
  display: inline-grid;
  place-content: center;
  cursor: pointer;
  flex-shrink: 0;
}

/* ===== Círculo interior al marcar ===== */
.services-checkbox-group input[type="checkbox"]::before {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 50%;
  transform: scale(0);
  transition: transform 0.15s ease-in-out;
  background-color: var(--yellow-300); /* color activo */
}

/* ===== Estado checked ===== */
.services-checkbox-group input[type="checkbox"]:checked::before {
  transform: scale(1);
}

/* ===== Focus accesible ===== */
.services-checkbox-group input[type="checkbox"]:focus-visible {
  outline: 2px solid var(--secondary-700); /* color focus */
  outline-offset: 2px;
}

/* ===== Estado error (si lo usas en JS) ===== */
.services-checkbox-group.error input[type="checkbox"] {
  border-color: #d33;
}

.services-checkbox-group.error input[type="checkbox"]::before {
  background-color: #d33;
}




/*==================================== SERVICES INDEX ================================*/
.services-home {
  display: flex;
  flex-direction: column;
  position: relative;
  gap:2rem;
  z-index: 2;
  width: 100%;
  padding: 10rem 1.2rem 13rem;

 background-color: var(--yellow-100); 


  }

.services-intro {
    width: 100%;
    margin: 1rem auto 2.5rem;
    text-align: left;

}

.service-block{
  z-index: 60;
  width: 300px;
}
.services-buttons {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: 1rem;
  flex-wrap: wrap;
  margin: 5rem auto 6rem;
  text-align: center;
  z-index: 60;
}

.services-buttons .btn-services {
    padding: 1rem 1.8rem;
    width: 200px;
    height: 200px;
    border: none;
    border-radius: 50%;
    cursor: pointer;
    font-size: 1.5rem;
    font-family: var(--font-ui);
    font-weight: var(--font-bold);
    transition: background .3s ease, transform .2s ease;
}

.services-buttons .btn-services:hover {
    transform: translateY(-3px);
}

.btn-branding{
  background-color: var(--primary-500);
  box-shadow: 0 0 30px rgba(200, 96, 45, 0.42),
  inset -4px 4px 1px rgba(91, 40, 1, 0.804);

}

.btn-digital{
      background-color: var(--yellow-400);
  box-shadow: 0 0 30px var(--yellow-600),
  inset -4px 4px 1px var(--yellow-500);

}

.btn-media{
  background-color: var(--secondary-200);
  box-shadow: 0 0 30px rgba(7, 72, 100, 0.42),
  inset -4px 4px 1px rgba(102, 154, 153, 0.804);
}

.category {
    max-height: 0;
    overflow: hidden;
    transition: max-height .4s ease;
    margin-bottom: 1rem;
    text-align: left;
    z-index: 50;
}

.category article {
    background: #fafafa;
    padding: 1rem;
    margin: 1rem auto;
    border-radius: 8px;
    box-shadow: 0 0 10px var(--yellow-500);
}

.category.active {
    max-height: 900px; /* ajusta según contenido */
}

.services-more{
  margin:auto;
}

/*============================== CTA DESCRIPTION ======================================*/
.cta-description{
  position: relative;
  display: flex;
  width: 100%;
  min-height: 350px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 2rem;

  z-index: 10;
}

.wrapper-cta-description{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3rem;
  padding: 1rem;
  width: 100%;
  margin-bottom: 6rem;
}

.cta-description p{
    text-align: left;
}

.cta-mssg{
  width: 100%;
  height: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-around;
  gap:2rem;
  z-index: 20;
  padding: 0 1rem 5rem;
  background-color: var(--yellow-300);
}

.cta-mssg-img{
  width: 100%;
  position: relative;
  height: auto; 
  top:-5rem;
  object-fit: cover; 
  border-radius: 40px;
  box-shadow: 0 0 15px rgba(53, 52, 52, 0.623);
}

.cta-mssg-contain{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap:2rem;
  max-width: 600px;
  width: 100%;
}

.cta-mssg-contain .subtitle{
  font-size: 2rem;
  line-height: 2.5rem;
 
}

.cta-mssg-contain p{
  text-align: center;
}

.bg-circle-yellow{
  position: absolute;
  top:0;
  left: 0;

  width: 100%;
  height: 90px;

  background-image: url(../img/bg-services-yellow.svg);
  background-repeat: repeat-x;
  background-size: auto 100%;

  z-index: 5;
}

/*========== FORMAS DE FONDO DINÁMICAS ==========*/

/* Forma 1 — arriba a la derecha */

/* Forma 2 — abajo a la izquierda */
.form-left{
  position: absolute;
  bottom: 46%;
  width: 100%;
  height: 100%;
  background-image: url(../img/rectangle-up.svg);
    background-repeat: no-repeat;
   background-size: cover;
  z-index: -1;

}

.form-right{
  position: absolute;

  width:100%;
  height: 100%;
   background-image: url(../img/rectangle-down.svg);
   background-repeat: no-repeat;
   background-size: cover;

  z-index: -1;

}


/*============================== TESTIMONIALS INDEX ======================================*/

.testimonials-home{
    width: 100%;
    min-height: 400px;
   display:flex;
   flex-direction: column; 
   gap:3rem;
   justify-content: center;
   align-items: center;
   padding: 1rem;
   margin:7rem auto 4rem;
  }

  .testimonials-container{
    max-width: 1400px;
  display: flex;
  flex-direction: COLUMN;  
  justify-content: center;
  align-items: stretch;
  gap: 2rem;
  }

  .testimonial-name{
    font-family: var(--font-ui);
    color:var(--primary-700);
    font-weight: var(--font-bold);
    font-size: 1.45rem;
  }

  .testimonial-content{
    flex:1;
    display: flex;
    flex-direction: column;
    align-items: center;

    max-width: 600px;
    gap: 1rem;
    border:2px solid var(--secondary-400);
    padding: 2rem 1rem;
    border-radius: 40px;
  }

  .testimonial-content span{
    font-family: var(--font-ui);
    color:var(--secondary-800)
  }


.testimonial-text{
    font-size:0.95rem;
    line-height:1.5rem;
}
/*============================== CONTACT INDEX ======================================*/

/* ===========================
   CONTACT INDEX – ESTILOS BASE
   =========================== */

/* =============================
   CONTACT INDEX (como en la imagen)
============================= */

.contact-home {
display: flex;
  flex-direction: column;

    width: 100%;
padding: 4rem 1rem;
background-color: var(--yellow-300);

z-index: 40;
margin: auto;
    
}


/* Contenedor del texto */
.contact-container { 
    position: relative;
  display: flex;
  flex-direction: column;
justify-content: center;
align-items: center; 
  text-align: center;
  gap:1rem;
    max-width: 1600px;
    margin: 0 auto;
    padding: 2rem  1rem 0;
    z-index: 5; 
}




/* imagen mia */
.wrapper-contact {
  width: min(300px, 100%);
  height: 0;
  padding-bottom: min(300px, 100%);
  border-radius: 50%;
  overflow: hidden;
  position: relative;
  margin-top: 4rem;
  box-shadow: 0 0 20px rgba(0,0,0,0.2);
}

.wrapper-contact img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.label-section{
    font-family: var(--font-ui);
    font-size:1.15rem;
    
}

.contact-container .hero-cta-button {
    margin-top:2rem;
}
/*============================== PROJECTS INDEX =====================================*/

.projects-home {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap:2rem;
  min-height: 1000px;      
  margin: auto;
  text-align: center;
  padding: 4rem 1rem;
 margin: auto;

}



.title-projects-home{
  margin: 3rem 0 0;

  display: flex;
  flex-direction: column;
  align-items: center;
  gap:2rem;
  margin-bottom: 4rem;

}



.container-projects{
  width: 90%;
  margin: auto;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 4rem;
  
}

/* OVERLAY oculto: abajo del todo */
.project-overlay {
    position: absolute;
    left: 0;
    bottom: -100%; 
}

.project-card .project-link {
  display: block;
  width: 100%;
  height: 100%;
  text-decoration: none;
  color: inherit;
}


/* HOVER: el recuadro sube */
.project-card:hover .project-overlay {
    bottom: 0;
}


/*Boton más proyectos*/

.projects-more{
  margin-top: 4rem;
  align-self: center;
}

/*============================== ABOUT INDEX =====================================*/  

.about-home{
  position: relative;
  width: 100%;
 min-height: 750px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap:20px;
  z-index: 12;

}

.about-home-content{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap:2rem;
  max-width: 600px;
  width: 90%;
  padding: 2rem;
  border-radius: 20px;
  background-color: var(--beige-100);
  box-shadow: 0 0 20px rgba(0,0,0,0.2);
  text-align: center;

}



.about-home a{
    margin-top:2rem;
}

.wrapper-flower{
  width: 100%; 
  position: absolute;
  top:-18rem;
  left:0;
  height: auto;
  z-index: 50;
}

.wrapper-flower img{
  width: 50%;
}



.bg-section-about-home{
  content:"";
  position: absolute;
  inset: 0; 
  width: 100%;
  height: 100%; 
  background-image: url(../img/bg-about-home.webp);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index:-1;
  position:absolute;
 
}

/*============================== PAGES ========================================*/
/* ======== SERVICES PAGE ======== */

.web-services-pages{
 box-shadow: inset 2px epx 10px grey;
 border-radius:10px;
}
.note{
    font-size: 0.90rem;
    font-weight: var(--font-medium);
    color:var(--secondary-800);
    font-family: var(--font-body);
    line-height: 1.5rem;
    border-radius:10px;
    padding: 0 0.25rem;
}

.services-page {
  display: flex;
  flex-direction: column;
  gap:2rem;
    height: auto;
    margin: 0 auto 3rem;  
    padding: 3rem 1rem 8rem;
}

.services-page h1 {
    text-align: center;  
  }

#page-services .services-intro {   
    margin-bottom: 3rem;
}

.services-categories {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

/* CONTENEDOR CATEGORÍA */
.category-box {
    border-radius: 8px;
    overflow: visible;
    transition: all 0.3s ease;
}

/* BOTÓN DE CATEGORÍA */
.category-toggle {
    width: 100%;
    text-align: left; 
    border: none;
    padding: 1rem;
    font-family: var(--font-ui);  
    font-weight: var(--font-bold); 
    font-size: 1.15rem; 
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-radius: 10px;
}

.category-branding{
  background-color: var(--primary-500);
  color: black;
}

.category-digital{
  background-color: var(--yellow-400);
  color: black;
}

.category-social-media{
  background-color: var(--secondary-200);
  color: black;
}


/* FLECHA ROTANDO CATEGORÍA */
.category-toggle .arrow {
    transition: transform 0.3s ease;
}

.category-box.active .category-toggle .arrow {
    transform: rotate(180deg);
}

/* LISTA DE SERVICIOS */
.services-list {
    max-height: 0;
    overflow: hidden;
    transition:max-height 0.4s ease;
}

/* BOTÓN DE SERVICIO */
.service-toggle {
    width: 100%;
    text-align: left;  
    border: none;
    padding: 0.8rem 1rem;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 0.5rem;
    font-size: 1rem;
    font-family: var(--font-ui);
    font-weight: var(--font-bold);
}

/* FLECHA ROTANDO SERVICIO */
.service-toggle .arrow {
    transition: transform 0.3s ease;
}

.service-toggle .arrow.rotated {
    transform: rotate(180deg);
}

.service-branding{
  background-color: var(--primary-100);
  color: black;
}

.service-digital{
  background-color: var(--yellow-100);
  color: black;
}

.service-social-media{
  background-color: var(--secondary-050);
  color: black;
}

/* Evita que el contenido se corte dentro del grupo */
.category-box.active .services-list {
    overflow: visible;
    max-height: none;
}

/* Asegura que cada item mantenga su propio espacio */
.service-item {
    position: relative;
    z-index: 1;
    margin-bottom: 1rem;
    background: #fafafa;
}

/* Detalles expandidos — espacio suficiente y sin corte */



/* DETALLES DEL SERVICIO */

 .service-details { 
    max-height:0;
    overflow: hidden;
    padding: 0 1rem;
    transition: max-heihgt .4s ease, padding .3s ease;
}




.service-details p,
.service-details ul {
    margin: 1rem 0;
}

.service-details ul {
    padding-left: 1.2rem;
}

.includes-list-services{
  display: flex;
  flex-direction: column;
  gap: 1rem;
  justify-content: space-around;
  list-style:disc;

  border-radius:10px;
  font-size: 0.95rem;
}

.includes-list-services li{
  font-family: var(--font-ui);
}

.service-item .btn-contact {

    margin: 0.5rem auto 4rem;
}

/* PROCESS SERVICES */
.services-process{
  width: 100%;
}

.services-process h2{
  max-width: 1200px;
  margin: 2rem auto;
  padding: 0 1rem;
  text-align: center;
}

/* Contenedor general */
.services-process-container{
  max-width: 1200px;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 3rem;
  margin: auto;
}

/* Cada bloque */
.process-item{
  display: flex;
  flex-direction: column;
  gap: 2rem;
  padding: 2rem 0;
  border-top: 1px solid grey;
  
}

/* Título */
.container-title-process-item{
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

/* Imagen */
.wrapper-img-process{
  width: 100%;
  max-width: 420px;     /* controla tamaño */
  margin: 0 auto;
}

.wrapper-img-process img{
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 20px;
}

/* Bloque proceso */
.process-project{
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

/* Lista */
.list-process{
  display: flex;
  flex-direction: column;
  list-style: none;
  gap: 1rem;
  padding: 0;
  margin: 0;
}

.list-process li{
  font-family: var(--font-ui);
  font-weight: var(--font-bold);
  font-size: 0.95rem;
  padding: 1.5rem;
  line-height: 1.85rem;
  border-radius: 20px;
  background-color: var(--secondary-200);
}


/*============ ABOUT PAGE ================*/

.wrapper-img-about{
 max-width: 600px;
  margin: auto;

}

.wrapper-img-about img{
  width: 100%;
  height: 100%;
  object-fit: cover;
    border-radius: 30px;
}

.about-page-hero{
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 2rem;
  padding: 0 1rem;
  margin:1rem auto 4rem;
}

.about-page-hero h1{
  text-align: left;
}

.about-page-hero p{
  text-align: left;
}
.text-cta{
font-weight: var(--font-medium);
}


.about-page-hero .cta-2{
  text-align: center;
}

.container-text-about{
  display: flex;
  flex-direction: column;
  gap:2rem;
  justify-content: space-around;
  padding: 2rem 0;
}

.container-img-text{
  margin:1rem auto 0.5rem;
  height: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap:2rem;
}

/*SKILLS*/

/* SKILLS TECHNICAL*/

.main-container-skills{

  background-color: var(--yellow-300);
display: flex;
flex-direction: column;
padding: 4rem 0 0;
}


.box-head-technical-skills{
  width: 100%;
  height: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap:2rem;
  padding: 6rem 1rem;
  text-align: left;
  margin:auto;
}

.too-list{
  font-size: 1.35rem;
  font-weight: var(--font-bold);
}
.section-soft-skills, .section-technical-skills{
  
  width: 100%;  
  height: auto;
  display:flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  padding: 5rem 1rem 7rem;
  gap:20px;
  margin: auto;
  
}



.section-soft-skills{
  background-color: var(--beige-400);
}


.items-soft-skills{
  max-width: 1600px;
}

.items-soft-skills{
  width:90%;
  display:flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  gap:30px;
  margin-top: 20px;
}





/* SKILLS SOFT*/


.card-soft{
  width: 100%;
  height: auto;
  display:flex;
  flex-direction: column;
  justify-content: stretch;
  align-items: center;

  gap:50px;
  padding:20px;
  color:var(--primary-900);
  opacity: 1;
  transform: translateY(20px);
  transition: opacity 1s ease, transform 1s ease;

}

.card-soft p{

  font-weight: 600; 
   text-align: center;
}

.card-soft.fade-in {
  opacity: 1;
  transform: translateY(0);
}

.card-soft i{
  font-size: 3rem;
  color: var(--color-neutro-dark);  
  opacity: 1;
}

/* DIJIENDO*/

.about-creative{  
  width: 100%;
  min-height: 900px;
  padding: 5rem 1rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 2rem;
  margin:0 auto 7rem;
}
.creative-image {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  justify-content: center;
  padding: 2rem 0;
}

.creative-image img {
  width: 300px; /* Puedes ajustarlo */
  background: #f2f2f2; /* Fondo gris suave */
  padding: 1rem 1rem 2rem; /* Marco estilo polaroid */
  border-radius: 6px;
  box-shadow: 0 10px 25px rgba(0,0,0,0.15);
  transform-origin: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  object-fit: cover;
}

/* R O T A C I O N E S  A L E A T O R I A S */
.creative-image img:nth-child(1) {
  transform: rotate(-4deg);
}
.creative-image img:nth-child(2) {
  transform: rotate(2deg);
}
.creative-image img:nth-child(3) {
  transform: rotate(-1deg);
}
.creative-image img:nth-child(4) {
  transform: rotate(3deg);
}
.creative-image img:nth-child(5) {
  transform: rotate(-3deg);
}

/* H O V E R */
.creative-image img:hover {
  transform: rotate(0deg) scale(1.04);
  box-shadow: 0 14px 30px rgba(0,0,0,0.2);
  cursor: pointer;
}



/*PROYECTOS DE A PAGINA DE ABOUT*/


/*============================== PAGE PROJECTS ================================*/

/* HERO */
.projects-hero {
  display: flex;
  flex-direction: column;
  gap:2rem;
  padding: 2rem 1rem;
  margin: 0 auto;
}

.projects-hero-title{
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.hero-text p{
 max-width: 450px;
}
.projects-categories{
  display:flex;
  gap: .8rem;
  justify-content:center;
  margin: 1rem auto;
}
.category-btn{
  border: none;
  background: transparent;
  padding:.55rem .9rem;
  border-radius: 999px;
  font-family: var(--font-ui);
  font-weight: var(--font-bold);
  cursor: pointer;
  transition: all .25s ease;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,0.04);
}

.category-btn:hover{
  background: var(--yellow-200);
  box-shadow: 0 6px 18px rgba(246,176,107,0.08);
}

.category-btn:active{
  background: var(--yellow-200);
  box-shadow: inset 0 6px 18px #a15f149e;
}
.category-btn.active{
  background: var(--secondary-500);
}
/* GRID */
.projects-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(280px,1fr));
  gap: 1.4rem;
  margin:2rem auto 2rem;
  padding:2rem 1.2rem;
}

/* CARD */
.project-card {
  position: relative;
  cursor: pointer;
  overflow: hidden;
  border-radius: 20px;
  transition: opacity .25s ease, transform .25s ease;
  box-shadow: 0 0 30px gray
}

.project-card img {
    width: 100%;
    height: 500px;
    object-fit: cover;
    display: block;
    border-radius: 20px;
}

/*CARD FILTRADA*/

.projects-grid.single {
  max-width: 420px;
  margin-left: auto;
  margin-right: auto;
}



/* OVERLAY DESLIZANDO */
.project-overlay {
  position: absolute;
  left: 0;
  bottom: -100%;
  width: 100%;
  padding: 1.2rem;
  background: #F2C14E;
  color: #000;
  transform: translateY(100%);
  transition: transform .35s ease;
}

.project-card:hover .project-overlay {
  transform: translateY(0);
}

/* DETALLE OCULTO */
.project-detail {
  position:relative;
  display: flex;
  flex-direction: column;
  gap:4rem;
  width: 100%;
  display: none;
  padding: 2rem 1.2rem 5rem;
  background: #FFFDF8;
  border-radius: 12px;
  box-shadow: 0 10px 40px rgba(0,0,0,.07);
  margin: 2rem auto;
}

.project-detail.active {
  display: flex;
  animation: fadeIn .3s ease;
}

@keyframes fadeIn {
  from { opacity:0; transform: translateY(10px);}
  to   { opacity:1; transform: translateY(0);}
}

.project-detail h2{
  margin-top: 2rem;
}
  
.project-detail p {
  text-align: left;
}
/*CONTENIDO PROYECTOS*/

/*lista de herramientas y tipo*/
.list-project-meta{
  display: flex;
  flex-direction: column;
  gap:1rem;
  flex-wrap: wrap;
  list-style: none;
}

 .list-project-meta li{
  font-family: var(--font-body);
  font-weight: var(--font-medium); 
  line-height: 1.85rem;
  font-size: 1rem; 
  text-align: left;
}



.container-brief{
  width: 100%;

  display: flex;
  flex-direction: column;  
  gap:1rem;
  justify-content: center;
 }

.container-brief h3{
  margin-bottom: 1rem;
 
}

.end{ 
  background-color: var(--secondary-500);
  padding: 3rem 0;
}

.end h3,
.end p{
  padding: 0 3rem;
}

/*Boton ver proyecos*/

.container-button-project{
  display: flex;
  flex-direction: column;
  gap:0.5rem;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding: 2rem 0;
}

.container-button-project span{
  font-family: var(--font-body);
  color:gray;
}

.container-button-project button{
  cursor:not-allowed;
}

/* PANEL DETALLE */
.projects-details {
  margin-top: 4rem;
}

.close-detail {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap:0.35rem;
  position: absolute;
  top:0;
  right: 50%;
  left: 50%;
  transform: translate(-50%, -50%);/* lo centras perfectamente */
  background-color: transparent;
  cursor: pointer;
  z-index: 10;  
  width: auto;
  border:none;
}

.close-detail img{
  width: 100%;
  background-color: var(--yellow-300);  
  cursor: pointer;
  width: auto;
  padding: 10px;
  border-radius: 100%;
}
.close-detail span{
  font-family: var(--font-ui);
  font-size: 0.75rem;
}

.close-detail:hover img{
 background-color: rgb(255, 220, 67);
}

.close-detail:active img{
    background-color: rgb(201, 168, 20);
    box-shadow: inset 2px 3px 5px rgb(150, 124, 11);
}



@keyframes fadeIn {
  from { opacity:0; transform: translateY(10px);}
  to   { opacity:1; transform: translateY(0);}
}

/* GALERÍA */

.container-gallery{
  display: flex;
  flex-direction: column;
  gap:2rem;
  justify-content: center;
}

.detail-gallery {
display: flex;
flex-direction: column;
justify-content: space-between;
gap:2rem;
}


.big {
  width: 100%;
  border-radius: 12px;
  box-shadow: 0 0 10px rgba(128, 128, 128, 0.516);
  transition: transform 0.5s linear; 
  cursor:pointer;
}

/* === MOBILE FIRST === */

.gallery-small {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.5rem; 
}

.gallery-small img,
.gallery-small-projects img,
.gallery-small video{
  width: 100%;
  height: 300px;
  object-fit: cover;
  border-radius: 8px;
  cursor:pointer;
  box-shadow: 0 0 10px #cacaca;
}


  .gallery-small-projects{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap:2rem;    
  }


 

.detail-gallery img:hover, .big:hover{
  transform: scale(1.05);

}

/* ================================
   MODAL IMÁGENES — CONTENEDOR
================================ */
.image-expand-modal {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.8);
  display: none; /* Oculto por defecto */
  justify-content: center;
  align-items: center;
  padding: 1rem;
  overflow: auto; /* Permite mover si sobresale */
  z-index: 99999999;
}

/* Mostrar cuando el JS añade .active */
.image-expand-modal.active {
  display: flex !important;
}

/* ================================
   MEDIA (imagen / vídeo dentro)
================================ */
.image-expand-modal img,
.image-expand-modal video {
  max-width: 95vw;
  max-height: 75vh;
  object-fit: contain;
  border-radius: 12px;
  image-rendering: auto;
}

/* Móvil */
@media (max-width: 600px) {
  .image-expand-modal img,
  .image-expand-modal video {
    max-width: 98vw;
    max-height: 70vh;
  }
}

/* Horizontal (paisaje) */
@media (orientation: landscape) {
  .image-expand-modal img,
  .image-expand-modal video {
    max-width: 90vw;
    max-height: 85vh;
  }
}

/* Botones del modal */
.img-close,
.img-prev,
.img-next {
  position: absolute;
  background: none;
  border: none;
  color: white;
  font-size: 2rem;
  padding: 10px;
  cursor: pointer;
}

.img-close { top: 20px; right: 30px; }
.img-prev { left: 40px; }
.img-next { right: 40px; }

.img-prev:hover,
.img-next:hover,
.img-close:hover {
  color: #F2C14E;
}




/*===============================     PAGE CONTACT    ================================ */
/* ============================
   SECCIÓN CONTACTO
============================ */

/* Contenedor general */
.contact-section {
    width: 100%;  
    margin: 0 auto 4rem;
    padding: 1rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 3rem;
}


.contact-content {
    width: 100%;
    display: flex;
    flex-direction: column;
    text-align: justify;
    gap: 2rem;
}
/* Contenido de texto */


.contact-intro {
  max-width: 700px;
}

.contact-intro strong {
    font-weight: 600;
}

.contact-intro a {
  color: var(--color-primary, #0077cc);
  text-decoration: none;
}

.contact-intro a:hover {
    text-decoration: underline;
}

/* ============================
   FORMULARIO
============================ */
.container-form-contact-page{
  width: 100%;
  max-width: 1600px;
  margin: auto;
}

.form-contact-page-services {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    width: 100%;
    max-width: 650px;
    padding: 3rem 0;
}

/* Caja de cada input */
.box-input-contact {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0 0 1.5rem;
}

/* Labels */
.box-input-contact label {
   font-family: var(--font-ui);
   font-weight: var(--font-bold);
   margin-bottom:1rem;
}

/* Inputs y textarea */
.box-input-contact input,
.box-input-contact textarea {
    width: 100%;
    padding: 0.9rem 1rem;
    border-radius: 10px;
    border: 1.5px solid var(--secondary-100);
    font-size: 1rem;
    background: var(--beige-100);
    font-family: var(--font-ui);
    transition: border-color .2s ease, background .2s ease;
}

.box-input-contact input:focus,
.box-input-contact textarea:focus {
    outline: none;
    border-color: var(--color-primary, #0077cc);
    background: #fff;
}



/* ============================
   MENSAJE ÉXITO
============================ */
.mssg-ok {
    margin-top: 1.5rem;
    padding: 1rem 1.5rem;
    border-radius: 10px;
    background: #e7f8ec;
    color: #0b6c33;
    font-size: 1rem;
    border: 1px solid #b7e8c5;
}

.btn-form{
  margin:auto;
}





/*========================== LEGAL PAGES ===================*/
/* ==========================================
   LEGAL PAGE – MOBILE FIRST
   ========================================== */
.section-legal{
  width: 100%;

  max-width: 1600px;
  display: flex;
  flex-direction: column;
  gap:1rem;
  margin:0 auto 2rem;
  padding: 1rem;
}

.section-legal h2{
  margin-bottom: 1rem;
}
.section-legal-page{
  width: 100%;
  display: flex;
  flex-direction: column;
  gap:2rem;
}

.section-legal p{
    text-align: justify;
}


.box-legal-text{
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1rem;
  text-align: justify;
}

.list-legal{
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding-left: 1rem;
  list-style: disc;
  text-align: justify;
}

.list-legal li{
  font-family: var(--font-body);
  line-height: 2rem;
  
}
/* Cada item */
.accordion-item{
  display: flex;
  flex-direction: column;
  gap:2rem;
   border-bottom: 1px solid #e6e6e6;
  padding-bottom: 10px;
  margin-bottom: 12px;
}
/* Cabecera del acordeón */
.accordion-header {
  width: 100%;
  background: #f8f8f8;
  padding: 14px 16px;
  font-size: 16px; 
  text-align: left;
  border: none;
  cursor: pointer;
  transition: background 0.2s ease;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.accordion-header:hover {
  background: var(--yellow-300);
}

.accordion-header[aria-expanded="true"] {
  background: var(--secondary-300);
}

/* Contenido */
.accordion-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s ease;
  padding-left: 4px;
  padding-right: 4px;
}

.accordion-content.open {
  padding-top: 12px;
  padding-bottom: 12px;
}

/* Títulos internos */
.accordion-content h4,
.accordion-content h5 {
  margin-top: 10px;
  font-size: 15px;
}

/* Listas legales */
.list-legal {
  padding-left: 20px;
  margin-top: 8px;
}

.list-legal li {
  margin-bottom: 6px;
  line-height: 1.5;
}



/*============PAGE ART ==================*/
.illustrations{
  max-width: 1200px;
  margin: 0 auto;
  padding: 2rem 1rem;
}

.illustrations-hero{
  display: flex;
  flex-direction: column;
  gap: 2rem;
  max-width: 1000px;
  margin-bottom: 5rem;
}

.illustrations-hero a{
    color:var(--secondary-600);
}

.illustrations-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 4rem;
}


.illustration-item{
  position: relative;
  border: none;
  background: none;
  padding: 0;
  cursor: pointer;
}

/* Imagen  */
.illustration-item img{
  width: 100%;
    height: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: 20px;
  box-shadow: 0 0 12px rgba(0,0,0,.15);
  transition: transform .4s ease;
  display: block;
}

/* Hover suave */
.illustration-item:hover img{
  transform: scale(1.03);
}

/*  MARCA DE AGUA */
.illustration-item::after,
.illustration-modal::after{
  content: "raquelabaldesign.es";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  letter-spacing: 0.25rem;
  text-transform: uppercase;
  color:  #ffffff63;
  pointer-events: none;
  transform: rotate(-25deg);
}





/* MODAL */
.illustration-modal{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.85);
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 999999999;
}

.illustration-modal img{
  max-width: 90%;
  max-height: 90%;
  border-radius: 16px;
}



.illustrations-note{
    font-family: var(--font-body);
    font-size:0.75rem;
    color:gray;
}
img{
  user-select: none;
  -webkit-user-drag: none;
}


/* ======================================
   ERROR 404 — MOBILE FIRST
====================================== */

.error-404 {
    min-height: 70vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 16px;
}

.error-404-container {
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    justify-content: center;
    gap: 32px;
    max-width: 1000px;
    width: 100%;
    text-align: center;
}

.error-404-text {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    width: 100%;
}

.error-404-text h1 {
    font-size: 1.75rem;
    line-height: 1.2;
}

.error-404-text p {
    font-size: 0.95rem;
    line-height: 1.6;
}

.error-404-bye {
    font-size: 0.9rem;
    margin-top: 8px;
    opacity: 0.8;
}

.error-404-img {
    flex-shrink: 0;
    width: 160px;
}

.error-404-img img {
    width: 100%;
    height: auto;
}

/*===================BOTON WHATSAP =========================*/

.whatsapp-float {
  position: fixed;
  bottom: 1.5rem;
  left: 1.5rem;
  z-index: 9999;
  background-color: #25D366;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 16px rgba(37, 211, 102, 0.4);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  text-decoration: none;
  animation: wapIn 0.5s 1s ease both;
}
 
.whatsapp-float:hover {
  transform: translateY(-3px) scale(1.05);
  box-shadow: 0 8px 24px rgba(37, 211, 102, 0.5);
}
 
/* Pulso */
.whatsapp-float::before {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-color: #25D366;
  animation: pulse 2.5s ease-out infinite;
  z-index: -1;
}
 
@keyframes wapIn {
  from { opacity: 0; transform: translateY(20px) scale(0.8); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
 
@keyframes pulse {
  0%   { transform: scale(1); opacity: 0.6; }
  70%  { transform: scale(1.5); opacity: 0; }
  100% { transform: scale(1.5); opacity: 0; }
}

