/* 
Theme Name:		 Digitalhamster
Theme URI:		 http://childtheme-generator.com/
Description:	 Digitalhamster is a child theme of BlankSlate, created by ChildTheme-Generator.com
Author:			 Digital Hamster
Author URI:		 http://childtheme-generator.com/
Template:		 blankslate
Version:		 1.0.0
Text Domain:	 digitalhamster
*/


/*
    Add your custom styles here
*/

/* Prevent horizontal scroll */
html,
body {
  overflow-x: hidden;
  max-width: 100%;
}

* {
  box-sizing: border-box;
}

/* Skip link y screen reader text - Accesibilidad */
.skip-link.screen-reader-text {
  position: absolute;
  left: -9999px;
  top: 0;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap;
}

.skip-link.screen-reader-text:focus {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100000;
  width: auto;
  height: auto;
  padding: 15px 23px 14px;
  background-color: var(--primary-white);
  color: var(--primary-black-100);
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto;
  overflow: visible;
}

sup {
  top: -0.6em;
  font-size: .65em;
  position: relative;
  vertical-align: baseline;
}

.nowrap {
  white-space: nowrap;
}

/* Widget styles to prevent horizontal scroll */
.widget {
  max-width: 100%;
  overflow-x: hidden;
  word-wrap: break-word;
}

.widget ul {
  max-width: 100%;
  overflow-x: hidden;
}

.widget li {
  max-width: 100%;
  word-wrap: break-word;
}

.widget a {
  word-wrap: break-word;
  overflow-wrap: break-word;
}

/* Lato Light */
@font-face {
  font-family: 'Lato';
  src: url('fonts/Lato-Light.eot') format("embedded-opentype"),
    url('fonts/Lato-Light.woff2') format("woff2"),
    url('fonts/Lato-Light.woff') format("woff"),
    url('fonts/Lato-Light.ttf') format("ttf"),
    url('fonts/Lato-Light.otf') format("otf");
  font-weight: 300;
  font-display: swap;
}

/* Lato Regular */
@font-face {
  font-family: 'Lato';
  src: url('fonts/Lato-Regular.eot') format("embedded-opentype"),
    url('fonts/Lato-Regular.woff2') format("woff2"),
    url('fonts/Lato-Regular.woff') format("woff"),
    url('fonts/Lato-Regular.ttf') format("ttf"),
    url('fonts/Lato-Regular.otf') format("otf");
  font-weight: 400;
  font-display: swap;
}

/* Lato Medium */
@font-face {
  font-family: 'Lato';
  src: url('fonts/Lato-Medium.eot') format("embedded-opentype"),
    url('fonts/Lato-Medium.woff2') format("woff2"),
    url('fonts/Lato-Medium.woff') format("woff"),
    url('fonts/Lato-Medium.ttf') format("ttf"),
    url('fonts/Lato-Medium.otf') format("otf");
  font-weight: 500;
  font-display: swap;
}

/* Lato Semibold */
@font-face {
  font-family: 'Lato';
  src: url('fonts/Lato-Semibold.eot') format("embedded-opentype"),
    url('fonts/Lato-Semibold.woff2') format("woff2"),
    url('fonts/Lato-Semibold.woff') format("woff"),
    url('fonts/Lato-Semibold.ttf') format("ttf"),
    url('fonts/Lato-Semibold.otf') format("otf");
  font-weight: 600;
  font-display: swap;
}

/* Lato Bold */
@font-face {
  font-family: 'Lato';
  src: url('fonts/Lato-Bold.eot') format("embedded-opentype"),
    url('fonts/Lato-Bold.woff2') format("woff2"),
    url('fonts/Lato-Bold.woff') format("woff"),
    url('fonts/Lato-Bold.ttf') format("ttf"),
    url('fonts/Lato-Bold.otf') format("otf");
  font-weight: 700;
  font-display: swap;
}

/* Lato Black */
@font-face {
  font-family: 'Lato';
  src: url('fonts/Lato-Black.eot') format("embedded-opentype"),
    url('fonts/Lato-Black.woff2') format("woff2"),
    url('fonts/Lato-Black.woff') format("woff"),
    url('fonts/Lato-Black.ttf') format("ttf"),
    url('fonts/Lato-Black.otf') format("otf");
  font-weight: 900;
  font-display: swap;
}

:root {
  /* PRIMARY COLORS */

  /* Red */
  --primary-red-100: #DF002F;
  --primary-red-90: #E21A44;
  --primary-red-80: #E53359;
  --primary-red-60: #EC6682;
  --primary-red-20: #F9CCD5;
  --primary-red-10: #FDEDED;

  /* Black */
  --primary-black-100: #111B29;
  --primary-black-90: #29323E;

  /* White */
  --primary-white: #FFFFFF;

  /* Grey */
  --primary-grey-100: #667489;
  --primary-grey-80: #97A3B7;
  --primary-grey-40: #F1F4F8;
  --primary-grey-20: #F7F8FA;
  --primary-grey-10: #FAFBFD;

  /* SECONDARY COLORS */

  /* Red Tones */
  --light-red: #FCE7E8;
  --white-red: #FFF8F8;

  /* SEMANTIC COLORS */

  /* Success */
  --success-100: #419E6A;
  --success-20: #A5E1BF;

  /* Error */
  --error-100: #D83232;
  --error-20: #FC9595;

  /* TYPOGRAPHY */
  --font-lato: "Lato";

  /* HEADINGS */
  --h1-size: 30px;
  --h1-weight: 700;

  --h2-size: 28px;
  --h2-weight-bold: 700;
  --h2-weight-medium: 500;

  --h3-size: 24px;
  --h3-weight: 500;

  --h4-size: 20px;
  --h4-weight-bold: 700;
  --h4-weight-medium: 500;

  --h5-size: 16px;
  --h5-weight-bold: 700;
  --h5-weight-medium: 500;

  --h6-size: 15px;
  --h6-weight: 700;

  /* BODY TEXT */
  --body-xs-size: 14px;
  --body-sm-size: 14px;
  --body-base-size: 16px;
  --body-md-size: 20px;
  --body-lg-size: 24px;

  --body-weight-regular: 400;
  --body-weight-medium: 500;
  --body-weight-semibold: 600;
  --body-weight-bold: 700;

  /* BUTTON TEXT */
  --btn-xs-size: 13px;
  --btn-sm-size: 14px;
  --btn-base-size: 16px;
  --btn-lg-size: 18px;

  /* SPACING */
  --uy-spacing-300: 60px;
}

body {
  font-family: var(--font-lato);
  /* Optimizaciones globales para coincidencia con Figma */
  font-synthesis: none;
  /* Evita síntesis automática de bold */
  -webkit-font-smoothing: antialiased;
  /* Suavizado para macOS */
  -moz-osx-font-smoothing: grayscale;
  /* Suavizado para Firefox */
  font-feature-settings: "liga" 0;
  /* Desactiva ligaduras */
  /* Optimizaciones para line-height y letter-spacing */
  text-rendering: optimizeLegibility;
  /* Renderizado optimizado */
  font-kerning: none;
  /* Desactiva kerning automático */
  font-variant-ligatures: none;
  /* Desactiva ligaduras */
  font-optical-sizing: auto;
  /* Ajuste óptico automático */
}

/* HEADINGS STYLES */

/* H1 */
h1,
.h1 {
  font-family: var(--font-lato);
  font-weight: var(--h1-weight);
  font-size: var(--h1-size);
  line-height: 1.2;
}

@media (min-width: 768px) {

  h1,
  .h1 {
    font-size: 42px;
  }
}

/* H2 */
h2,
.h2 {
  font-family: var(--font-lato);
  font-weight: var(--h2-weight-bold);
  font-size: var(--h2-size);
  line-height: 1.2;
}

h2.medium,
.h2.medium {
  font-weight: var(--h2-weight-medium);
}

@media (min-width: 768px) {

  h2,
  .h2 {
    font-size: 36px;
  }
}

/* H3 */
h3,
.h3 {
  font-family: var(--font-lato);
  font-weight: var(--h3-weight);
  font-size: var(--h3-size);
  line-height: 1.2;
}

@media (min-width: 768px) {

  h3,
  .h3 {
    font-size: 28px;
  }
}

/* H4 */
h4,
.h4 {
  font-family: var(--font-lato);
  font-weight: var(--h4-weight-bold);
  font-size: var(--h4-size);
  line-height: 1.2;
}

h4.medium,
.h4.medium {
  font-weight: var(--h4-weight-medium);
  font-size: 18px;
}

@media (min-width: 768px) {

  h4,
  .h4 {
    font-size: 20px;
  }

  h4.medium,
  .h4.medium {
    font-size: 20px;
  }
}

/* H5 */
h5,
.h5 {
  font-family: var(--font-lato);
  font-weight: var(--h5-weight-bold);
  font-size: var(--h5-size);
  line-height: 1.2;
}

h5.medium,
.h5.medium {
  font-weight: var(--h5-weight-medium);
}

@media (min-width: 768px) {

  h5,
  .h5 {
    font-size: 18px;
  }
}

/* H6 */
h6,
.h6 {
  font-family: var(--font-lato);
  font-weight: var(--h6-weight);
  font-size: var(--h6-size);
  line-height: 1.2;
}

@media (min-width: 768px) {

  h6,
  .h6 {
    font-size: 16px;
  }
}

/* BODY TEXT STYLES */

/* XS */
.text-xs {
  font-family: var(--font-lato);
  font-weight: var(--body-weight-regular);
  font-size: var(--body-xs-size);
  line-height: 1.4;
}

/* SM */
.text-sm {
  font-family: var(--font-lato);
  font-weight: var(--body-weight-regular);
  font-size: var(--body-sm-size);
  line-height: 1.4;
}

.text-sm.medium {
  font-weight: var(--body-weight-medium);
}

/* BASE */
.text-base {
  font-family: var(--font-lato);
  font-weight: var(--body-weight-regular);
  font-size: var(--body-base-size);
  line-height: 1.4;
}

.text-base.medium {
  font-weight: var(--body-weight-medium);
}

.text-base.semibold {
  font-weight: var(--body-weight-semibold);
}

/* MD */
.text-md {
  font-family: var(--font-lato);
  font-weight: var(--body-weight-regular);
  font-size: var(--body-md-size);
  line-height: 1.4;
}

.text-md.medium {
  font-weight: var(--body-weight-medium);
}

.text-md.semibold {
  font-weight: var(--body-weight-semibold);
}

.text-md.bold {
  font-weight: var(--body-weight-bold);
}

/* LG */
.text-lg {
  font-family: var(--font-lato);
  font-weight: var(--body-weight-regular);
  font-size: var(--body-lg-size);
  line-height: 1.4;
}

.text-lg.medium {
  font-weight: var(--body-weight-medium);
}

.text-lg.semibold {
  font-weight: var(--body-weight-semibold);
}

/* BUTTON TEXT STYLES */

/* XS */
.btn-xs {
  font-family: var(--font-lato);
  font-weight: var(--body-weight-regular);
  font-size: var(--btn-xs-size);
  line-height: 1.2;
}

.btn-xs.bold {
  font-weight: var(--body-weight-bold);
}

/* SM */
.btn-sm {
  font-family: var(--font-lato);
  font-weight: var(--body-weight-regular);
  font-size: var(--btn-sm-size);
  line-height: 1.2;
}

.btn-sm.bold {
  font-weight: var(--body-weight-bold);
}

/* BASE */
.btn-base {
  font-family: var(--font-lato);
  font-weight: var(--body-weight-medium);
  font-size: var(--btn-base-size);
  line-height: 1.2;
}

.btn-base.bold {
  font-weight: var(--body-weight-bold);
}

/* LG */
.btn-lg {
  font-family: var(--font-lato);
  font-weight: var(--body-weight-medium);
  font-size: var(--btn-lg-size);
  line-height: 1.2;
}

/* CONTAINER */
.dh-container {
  width: 100%;
  padding: 0 20px;
  margin: 0 auto;
}

@media (min-width: 768px) {
  .dh-container {
    padding: 0 40px;
  }
}

@media (min-width: 1024px) {
  .dh-container {
    max-width: calc(100vw - (var(--uy-spacing-300) * 2));
    padding: 0;
    margin: 0 auto;
  }
}

@media (min-width: 1440px) {
  .dh-container {
    max-width: 1440px;
    padding: 0 100px;
  }
}

/* Layout vertical para el contenedor existente */
.floating-button-container {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 12px;
}

/* Forzar visibilidad controlada por clase en el contenedor original */
.floating-button-container {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateY(0) !important;
  transition: opacity .25s ease, transform .25s ease, visibility .25s ease;
}

.floating-button-container.visible {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateY(0) !important;
}

/* Sticky/fijo del contenedor flotante en viewport */
.floating-button-container {
  position: fixed !important;
  right: 20px !important;
  bottom: 90px !important;
  /* por encima del footer/sticky bar */
  z-index: 100000 !important;
}

/* Botón redondo genérico (WhatsApp) */
.floating-button-container .floating-round {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 62px;
  height: 62px;
  border-radius: 50%;
  background: #25D366;
  /* var(--primary-red-100) */
  box-shadow: 0 6.643px 9.964px rgba(207, 209, 212, 0.15);
  text-decoration: none;
}

.floating-button-container .floating-round img {
  width: 36px;
  height: 36px;
  display: block;
}



/* Responsive (<=980px): botones en fila con texto e icono */
/* Responsive (<=980px): Mantener estilo botón redondo a la derecha */
@media (max-width: 980px) {
  .floating-button-container {
    /* Mantener posición derecha fija */
    right: 20px !important;
    left: auto !important;
    bottom: 84px !important;
    width: auto;
    margin: 0;
    align-items: flex-end;
    /* Mantener alineación derecha */
  }

  .floating-button-container .floating-round {
    /* Reset manual de estilos responsivos anteriores si los hubiera */
    display: inline-flex;
    width: 62px;
    height: 62px;
    border-radius: 50%;
    padding: 0;
    max-width: none;
  }

  /* Ocultar siempre el texto, también en móvil */
  .floating-button-container .floating-round .btn-text {
    display: none !important;
  }
}

/* Ocultar botón flotante cuando el menú móvil está abierto */
body.mobile-menu-open .floating-button-container,
html.mobile-menu-open .floating-button-container {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none;
  transition: opacity 0.2s ease, visibility 0.2s ease;
}

/* Desktop: ocultar textos en los círculos explícitamente (redundancia seguridad) */
@media (min-width: 981px) {
  .floating-button-container .floating-round .btn-text {
    display: none !important;
  }
}