/*!
Theme Name: Lashberrypro
Theme URI: http://underscores.me/
Author: MKT Medianet
Author URI: http://mktmedianet.com
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: lashberrypro
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

_s is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Generic
# Fonts and Typography
# Heading
# Colors
# Buttons
# Topbar
# Header
# Navbar
# Footer
# Scroll to Top Button
# Contact Button (WhatsApp)
# Hero Section
# Page Headers
# Flexible Blocks: Text
# Flexible Blocks: Alternating Layout
# Flexible Blocks: Features
# Flexible Blocks: Section blocks
# Flexible Blocks: Related Content
# Flexible Blocks: Related Products
# Flexible Blocks: Banner (CTA)
# Flexible Blocks: FAQs
# Flexible Blocks: Team
# Flexible Blocks: Gallery
# Flexible Blocks: Rates
# Sidebar
# Forms
#  - Form Banner
#  - Form Sidebar
# Single Post
# 404 Page
# Blog Page
# About Page
# Contact Page
# Woocommerce
# Media Queries - Responsive Adjustments

--------------------------------------------------------------*/

@import url("https://fonts.googleapis.com/css2?family=Karla:ital,wght@0,200..800;1,200..800&family=Raleway:ital,wght@0,100..900;1,100..900&display=swap");

/*--------------------------------------------------------------
# Variables
--------------------------------------------------------------*/
:root {
  /* Fonts */
  --font-body: "Raleway", sans-serif;
  --font-title: "Raleway", sans-serif;
  --font-tagline: "Raleway", sans-serif;
  --font-nav-link: "Karla", sans-serif;

  --fs-h1: clamp(2rem, 5vw, 4rem);
  --fs-h2: 2.25rem;
  --fs-h3: 1.75rem;
  --fs-h4: 1.5rem;
  --fs-h5: 1.125rem;
  --fs-h6: 1.025rem;

  --fw-heading: 500;

  /* Colors */
  --color-black: #1c1f26;
  --color-dark: #2c2a33;

  --color-primary: #64ccc9;
  --color-primary-hover: #3ab0ad;

  --color-primary-500: #297c7a;
  --color-primary-400: #3ab0ad;
  --color-primary-300: #64ccc9;
  --color-primary-200: #98dddb;
  --color-primary-100: #cbeeed;
  --color-primary-alpha: rgba(100, 204, 201, 10);

  --color-error-100: #fb3748;
  --color-error-200: #d00416;
  --color-error-alpha: rgba(251, 55, 72, 10);

  --color-warning-100: #ffdb43;
  --color-warning-200: #dfb400;
  --color-warning-alpha: rgba(251, 219, 67, 10);

  --color-sucess-100: #84ebb4;
  --color-sucess-200: #1fc16b;
  --color-sucess-alpha: rgba(31, 193, 107, 10);

  --color-text-body: #2c2a33;
  --color-text-heading: #1c1f26;
  --color-text-tagline: #64ccc9;
  --color-text-muted: #757575;
  --color-text-card: #4a4a4a;

  --color-text-white: #ffffff;
  --color-text-light: #f9f9f9;

  --color-text-link: #64ccc9;
  --color-text-link-hover: #297c7a;

  --color-bg-dark: #1c1f26;
  --color-bg-light: #f6f8fa;
  --color-bg-white: #fff;
  --color-bg-primary: #fff;

  --color-border: #d1d1d1;

  /* Margins & Paddings */
  --padding-top-body: 70px;
  --padding-top-body-mobile: 64px;

  /* Transitions */
  --transition-btn: all 0.25s ease-in-out;

  /* Shadows */
  --box-shadow-menu: rgba(0, 0, 0, 0.1) 0px 4px 12px;
  --box-shadow-input: 0 0 0 2px rgba(0, 201, 183, 0.3);
  --text-shadow-hero: 0px 2px 4px rgba(0, 0, 0, 0.4);
  --text-shadow-heading: 1px 1px 2px rgba(0, 0, 0, 0.6);

  /* Border radius */
  --border-radius-input-form: 0.25rem;
  --border-radius-button: 1.5rem;
}

/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/
.fit {
  object-fit: cover;
  width: 100%;
  height: 100%;
}
.cover {
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
}
.contain {
  background-repeat: no-repeat;
  background-size: contain !important;
  background-position: center center;
}
.text-shadow {
  text-shadow: var(--text-shadow-heading);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  min-height: 100vh;
  width: 100%;
  margin: 0;
  padding: 0;
  font-family: var(--font-body);
  font-weight: 400;
  line-height: 1.6;
  background-color: var(--color-bg-white);
  color: var(--color-text-body);
}

body:not(.home) {
  padding-top: 70px;
}

/* body.page-template-default .page-content {
  min-height: 50vh;
} */

a {
  color: var(--color-text-body);
  text-decoration: none;
}

a:hover,
a:focus {
  color: var(--color-primary);
  outline: none;
}

.alignleft {
  float: left;
  margin-right: 1.5rem;
  margin-left: 1.5rem;
}

.alignright {
  float: right;
  margin-right: 1.5rem;
  margin-left: 1.5rem;
}

.aligncenter {
  clear: both;
  display: block;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1.5em;
}

/* Rocket */
[data-wpr-lazyrender] {
  content-visibility: visible !important;
}

/*--------------------------------------------------------------
 # Fonts and Typography
 --------------------------------------------------------------*/
b,
strong {
  font-weight: 600;
}

.tagline {
  color: var(--color-text-tagline);
  font-family: var(--font-tagline);
  font-size: 0.9375rem;
  line-height: 130%;
  font-style: normal;
  font-weight: 500;
  margin-bottom: 0.25rem;
  text-transform: uppercase;
}

blockquote {
  background-color: #fafafa;
  margin: 1.5rem 0;
  padding: 1rem 1rem 1rem 1.5rem;
  quotes: "\\201C" "\\201D" "\\2018" "\\2019";
  border-left: 4px solid var(--color-primary);
}

blockquote p {
  margin-bottom: 0;
  font-style: italic;
  font-weight: 500;
  line-height: 160%;
}

.fw300 {
  font-weight: 300;
}
.fw400 {
  font-weight: 400;
}
.fw500 {
  font-weight: 500;
}
.fw600 {
  font-weight: 600;
}
.fw700 {
  font-weight: 700;
}

.lh100 {
  line-height: 100%;
}
.lh110 {
  line-height: 110%;
}
.lh120 {
  line-height: 120%;
}
.lh130 {
  line-height: 130%;
}
.lh140 {
  line-height: 140%;
}
.lh150 {
  line-height: 150%;
}
.lh160 {
  line-height: 160%;
}
.lh170 {
  line-height: 170%;
}

.fs64 {
  font-size: 4rem;
}
.fs60 {
  font-size: 3.75rem;
}
.fs58 {
  font-size: 3.625rem;
}
.fs56 {
  font-size: 3.5rem;
}
.fs52 {
  font-size: 3.25rem;
}
.fs48 {
  font-size: 3rem;
}
.fs44 {
  font-size: 2.75rem;
}
.fs42 {
  font-size: 2.625rem;
}
.fs40 {
  font-size: 2.5rem;
}
.fs38 {
  font-size: 2.375rem;
}
.fs36 {
  font-size: 2.25;
}
.fs34 {
  font-size: 2.125rem;
}
.fs32 {
  font-size: 2rem;
}
.fs30 {
  font-size: 1.875rem;
}
.fs28 {
  font-size: 1.75rem;
}
.fs26 {
  font-size: 1.625rem;
}
.fs24 {
  font-size: 1.5rem;
}
.fs22 {
  font-size: 1.375rem;
}
.fs20 {
  font-size: 1.25rem;
}
.fs18 {
  font-size: 1.125rem;
}
.fs17 {
  font-size: 1.063rem;
}
.fs16 {
  font-size: 1rem;
}
.fs15 {
  font-size: 0.9375rem;
}
.fs14 {
  font-size: 0.875rem;
}
.fs13 {
  font-size: 0.813rem;
}
.fs12 {
  font-size: 0.75rem;
}

/*--------------------------------------------------------------
 # Heading
 --------------------------------------------------------------*/
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-title);
  color: var(--color-text-heading);
  font-weight: var(--fw-heading);
  font-style: normal;
}

.heading-1 {
  font-family: var(--font-title);
  font-size: var(--fs-h1);
  font-weight: 400;
  line-height: 110%;
  margin-bottom: 1rem;
}

.heading-2 {
  font-family: var(--font-title);
  font-size: var(--fs-h2);
  font-weight: var(--fw-heading);
  line-height: 1.3;
  margin-bottom: 1rem;
}

.heading-3 {
  font-family: var(--font-title);
  font-size: var(--fs-h3);
  font-weight: var(--fw-heading);
  line-height: 1.3;
  margin-bottom: 0.875rem;
}
.heading-4 {
  font-family: var(--font-title);
  font-size: var(--fs-h4);
  font-weight: var(--fw-heading);
  line-height: 1.3;
  margin-bottom: 0.875rem;
}

.heading-5 {
  font-family: var(--font-title);
  font-size: var(--fs-h5);
  font-weight: var(--fw-heading);
  line-height: 1.3;
  margin-bottom: 0.875rem;
}

.heading-6 {
  font-family: var(--font-title);
  font-size: var(--fs-h6);
  font-weight: var(--fw-heading);
  line-height: 1.3;
  margin-bottom: 0.875rem;
}

.heading-1:not(.c-white),
.heading-2:not(.c-white),
.heading-3:not(.c-white),
.heading-4:not(.c-white),
.heading-5:not(.c-white) {
  color: var(--color-text-heading);
}

/*--------------------------------------------------------------
 # Colors
 --------------------------------------------------------------*/
.c-primary {
  color: var(--color-primary);
}
.c-bg-primary {
  background-color: var(--color-primary);
}
.c-secondary {
  color: var(--secondary);
}
.c-bg-secondary {
  background-color: var(--secondary);
}
.c-black {
  color: var(--color-black);
}
.c-bg-black {
  background-color: var(--color-black);
}
.c-dark {
  color: var(--color-dark);
}
.c-bg-dark {
  background-color: var(--color-dark);
}
.c-white {
  color: var(--color-text-white);
}
.c-bg-white {
  background-color: var(--color-bg-white);
}
.c-light {
  color: var(--color-light);
}
.c-bg-light {
  background-color: var(--color-bg-light);
}
.c-body {
  color: var(--color-text-body);
}

/*--------------------------------------------------------------
 # Buttons
 --------------------------------------------------------------*/
button,
input,
select,
textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

.btn {
  font-weight: 400;
  font-family: var(--font-nav-link);
  text-decoration: none;
  transition: var(--transition-btn);
  border: 1px solid;
  cursor: pointer;
  outline: none;
  text-transform: uppercase;
  line-height: 100%;
  letter-spacing: -0.03rem;
}

.btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.btn:hover {
  text-decoration: none;
}

.btn:focus {
  outline: none;
}

.btn-sm {
  padding: 0.5rem 0.75rem;
  font-size: 0.75rem;
  border-radius: 1.25rem;
}

.btn-md {
  padding: 0.625rem 1rem;
  font-size: 0.875rem;
  border-radius: 1.5rem;
}

.btn-lg {
  padding: 1rem 1.25rem;
  font-size: 1rem;
  border-radius: 1.5rem;
}

.btn-xl {
  padding: 0.875rem 2rem;
  font-size: 1.0625rem;
  border-radius: 2.5rem;
}

.btn-xxl {
  padding: 1rem 2.5rem;
  font-size: 1.125rem;
  border-radius: 2.5rem;
}

/* Botón por defecto */
.btn-default {
  background-color: var(--color-dark);
  color: var(--color-text-white);
  border-color: transparent;
}

.btn-default:hover,
.btn-default:active {
  background-color: var(--color-primary);
  color: var(--color-text-white);
  border-color: transparent;
  box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.15);
}

/* Botón primario */
.btn-primary {
  background: var(--color-primary);
  color: var(--color-text-white);
  border-color: transparent;
}

.btn-primary:hover,
.btn-primary:active,
.btn-primary:focus {
  background: linear-gradient(145deg, var(--color-primary), #618eb0);
  color: var(--color-text-white);
  border-color: transparent;
}

/* Botón secundario */
.btn-cta {
  background-color: var(--secondary);
  color: var(--color-text-white);
  border-color: var(--secondary);
}

.btn-cta:hover,
.btn-cta:active,
.btn-cta:focus {
  background-color: var(--secondary);
  color: var(--color-text-white);
  border-color: var(--secondary);
  opacity: 0.8;
}

/* Botón secundario */
.btn-secondary {
  background-color: var(--color-bg-white);
  color: var(--color-text-heading);
  border-color: var(--color-bg-white);
}

.btn-secondary:hover,
.btn-secondary:active {
  background-color: var(--color-bg-white);
  color: var(--color-primary);
  border-color: var(--color-primary);
}

/* Botón Transparente */
.btn-transparent {
  background-color: rgba(255, 255, 255, 0.1);
  color: var(--color-text-white);
  border: 0.5px solid rgba(255, 255, 255, 1);
  backdrop-filter: blur(1px);
}

.btn-transparent:hover,
.btn-transparent:active {
  background-color: rgba(255, 255, 255, 0.15);
  border: 0.5px solid rgba(255, 255, 255, 0.6);
  color: var(--color-text-white);
  backdrop-filter: blur(2px);
}

/*--------------------------------------------------------------
 # Topbar
 --------------------------------------------------------------*/
.topbar-link-text {
  color: var(--color-black);
  font-size: 0.9375rem;
  transition: color 0.3s ease;
}

.topbar-link:hover .topbar-link-text {
  color: var(--color-primary);
}

/*--------------------------------------------------------------
 # Header
 --------------------------------------------------------------*/
header.header {
  position: fixed;
  top: 0;
  z-index: 1200;
  transition:
    transform 0.5s ease-in-out,
    opacity 0.5s ease-in-out;
  opacity: 1;
  transform: translateY(0);
}

.header.scrolled {
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  backdrop-filter: blur(10px);
}

.header.scrolled.scroll-up {
  transform: translateY(-49px) scale(1);
  opacity: 1;
}

.header.scroll-down {
  transform: translateY(-100%) scale(1.05);
  opacity: 0;
  pointer-events: none;
}

header .navbar-brand {
  padding: 0;
}

header .img-brand {
  height: auto;
}

/* Ocultar el logo blanco por defecto */
.logo-white {
  display: none;
}

/* Mostrar el logo blanco y ocultar el negro cuando el encabezado tiene bg-transparent */
.header.bg-transparent .logo-white {
  display: block;
}

.header.bg-transparent .logo-black {
  display: none;
}

/* Asegurar que el logo negro esté visible por defecto */
.header.bg-white .logo-black {
  display: block;
}

.header.bg-white .logo-white {
  display: none;
}

/* Opcional: Transiciones suaves para el cambio de logos */
.logo-black,
.logo-white {
  transition: opacity 0.3s ease;
}

/*--------------------------------------------------------------
 # Navbar
 --------------------------------------------------------------*/
.navbar-toggler:focus {
  box-shadow: none !important;
}

.navbar-nav > .nav-item > .nav-link {
  font-family: var(--font-nav-link);
  text-transform: uppercase;
  line-height: 100%;
  position: relative;
  padding: 1rem 0.5rem;
  transition: color 0.3s ease;
  margin: auto;
}

.nav-item.current_page_item a {
  color: var(--color-primary) !important;
}

.header.bg-white .navbar-nav > .nav-item > .nav-link {
  color: var(--color-text-heading);
}

.header.bg-transparent .navbar-nav > .nav-item > .nav-link {
  color: var(--color-text-white);
}

/* Subrayado animado en hover para enlaces sin dropdown */
.navbar-nav > .nav-item:not(.dropdown) > .nav-link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  height: 2px;
  width: 100%;
  background-color: var(--color-primary);
  opacity: 0;
  transform: scaleX(0);
  transition:
    opacity 0.3s ease,
    transform 0.3s ease;
}

.navbar-nav > .nav-item:not(.dropdown) > .nav-link:hover::after {
  opacity: 1;
  transform: scaleX(1);
}

.dropdown-menu .dropdown-item {
  color: var(--color-dark);
  font-size: 0.9365rem;
}

.navbar-nav > .nav-item > .nav-link:hover,
.navbar-nav .dropdown-item:hover {
  color: var(--color-primary);
}

/* Estilo para el botón de contacto */
.navbar-nav > li:last-child .nav-link {
  padding: 1rem 1.25rem !important;
  border-radius: 2.5rem;
  color: var(--color-text-white) !important;
  background-color: var(--color-primary-300);
  margin-left: 0.5rem;
  position: relative;
  overflow: hidden;
  transition:
    color 0.3s ease,
    transform 0.3s ease;
  z-index: 1;
}

.navbar-nav > li:last-child .nav-link:hover {
  background-color: var(--color-primary-400) !important;
}

.navbar-nav > li:last-child .nav-link::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 0;
  height: 100%;
  background-color: var(--color-primary-400) !important;
  border-radius: 2.5rem;
  transition: width 0.3s ease;
  z-index: -1;
}

.navbar-nav .btn-contact .nav-link:hover::after {
  width: 100%;
  left: 0;
}

/* Submenús */
ul.dropdown-menu {
  box-shadow: var(--box-shadow-menu);
  border-color: var(--bs-dropdown-link-hover-bg);
  list-style: none;
}

ul.dropdown-submenu {
  display: none;
  font-size: 0.9365rem;
  padding: 0.5rem;
  list-style: none;
}

li.dropdown:hover > ul.dropdown-menu,
.dropdown-item:hover > .dropdown-submenu,
ul.dropdown-submenu.show {
  display: block;
}

/*--------------------------------------------------------------
 # Footer
 --------------------------------------------------------------*/
.footer-top .img-brand {
  max-width: 200px;
}

.footer-menu-title {
  font-family: var(--font-title);
  color: var(--color-text-heading);
  font-size: 1rem;
  font-weight: 500;
  text-transform: uppercase;
}

.footer-menu ul li a {
  color: var(--color-text-body);
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 160%;
}

/*--------------------------------------------------------------
 # Scroll to Top Button
 --------------------------------------------------------------*/
.scrollToTop {
  position: fixed;
  bottom: 75px;
  right: 8px;
  width: 48px;
  height: 48px;
  background-color: var(--color-primary);
  color: var(--color-text-white);
  border-radius: 50%;
  cursor: pointer;
  text-align: center;
  line-height: 48px;
  font-size: 24px;
  z-index: 130;
  transition: all 0.3s ease-in-out 0s;
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
}
.scrollToTop:hover {
  background-color: var(--secondary);
}

/*--------------------------------------------------------------
 # Contact Button (WhatsApp)
 --------------------------------------------------------------*/
.contacts {
  width: 56px;
  height: 168px;
  position: fixed;
  right: 4px;
  bottom: 126px;
  transition: all 250ms ease-in-out 0s;
  z-index: 1202;
}
.contacts__btn {
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  position: absolute;
  bottom: 4px;
  left: 0;
  color: var(--color-text-white);
  transition: all 250ms ease-in-out 0s;
  border-radius: 50%;
  background-color: var(--color-primary);
  color: var(--color-text-white);
  text-decoration: none;
}
.contacts__btn:hover,
.contacts__btn:focus {
  color: var(--color-text-white);
}
.contacts__btn--main {
  width: 56px;
  height: 56px;
  z-index: 90;
}
.contacts__btn--wp,
.contacts__btn--ph,
.contacts__btn--em {
  width: 48px;
  height: 48px;
}
.contact-active .contacts__btn--wp {
  transform: translate(4px, -176px);
}
.contact-active .contacts__btn--ph {
  transform: translate(4px, -120px);
}
.contact-active .contacts__btn--em {
  transform: translate(4px, -64px);
}

.contact-active .contacts__btn--main .fa-whatsapp {
  transform: rotate(45deg);
}
.buttons__contact-container .fa-whatsapp,
.buttons__contact-container .fa-phone,
.buttons__contact-container .fa-envelope {
  top: 50%;
  left: 50%;
  color: var(--color-text-white);
  z-index: 1;
  position: absolute;
  transform: translate(-50%, -50%);
  text-align: center;
  transition: all 0.2s ease-out 0s;
}
.contacts__btn--main .fa-whatsapp {
  font-size: 32px;
}
.contacts__btn--wp .fa-whatsapp,
.contacts__btn--ph .fa-phone,
.contacts__btn--em .fa-envelope {
  font-size: 22px;
}

/*--------------------------------------------------------------
 # Hero Section
 --------------------------------------------------------------*/

/*--------------------------------------------------------------
 # Slider
 --------------------------------------------------------------*/
.carousel-content,
.carousel-inner,
.carousel-item {
  min-height: 650px;
}

.carousel-content .heading-1 {
  color: var(--color-text-white, #fff);
  text-shadow: var(--text-shadow-hero);
}

.slide-description p {
  color: var(--color-text-white, #fff);
  font-size: 1.375rem;
  text-shadow: var(--text-shadow-hero);
  font-weight: 200;
  margin-bottom: 0;
}

/*--------------------------------------------------------------
 # Page Headers
 --------------------------------------------------------------*/

/*--------------------------------------------------------------
 # Flexible Blocks: Text
 --------------------------------------------------------------*/

/*--------------------------------------------------------------
 # Flexible Blocks: Alternating Layout
 --------------------------------------------------------------*/

/*--------------------------------------------------------------
 # Flexible Blocks: Features
 --------------------------------------------------------------*/
.feature-item a {
  text-decoration: underline;
  color: var(--color-primary);
}

.feature-item a:hover {
  color: var(--color-primary-hover);
}

.feature-item .feature-item-title {
  border-left: 2px solid var(--color-primary-hover);
  padding-left: 1rem;
}

.feature-item .description {
  border-left: 1px solid #dde1e6;
  padding-left: 1rem;
}

.feature-description p {
  margin-bottom: 0;
}

.feature-item-img-bg .feature-description p {
  font-weight: 600;
}

.feature-item-img-bg {
  min-height: 24.375rem;
  height: 100%;
}

.feature-item-img-bg .feature-content {
  max-width: 250px;
  margin: auto;
  box-shadow: 0px 0px 8px 0px rgba(17, 17, 26, 0.1);
  background-color: rgba(255, 255, 255, 0.9);
}
.feature-item-img-bg .feature-description p strong {
  color: var(--color-primary-300);
}

/*--------------------------------------------------------------
 # Flexible Blocks: Section blocks
 --------------------------------------------------------------*/
.block-item {
  position: relative;
  overflow: hidden;
  height: 100%;
}

.block-image {
  height: 100%;
  width: 100%;
  min-height: 25rem;
  transition: transform 0.3s ease-in-out;
}

.block-overlay {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background: rgba(0, 0, 0, 0.2);
  color: var(--color-text-white);
  padding: 2.5rem 1.5rem;
  transition: background 0.3s ease-in-out;
}

.block-link:hover .block-overlay {
  background: rgba(0, 0, 0, 0.3);
}

.block-title {
  color: var(--color-text-white);
  font-family: var(--font-title);
  font-size: 2.25rem;
  font-weight: 400;
  line-height: 130%;
  letter-spacing: -0.0675rem;
  text-transform: uppercase;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.6);
}

.block-subtitle {
  color: var(--color-text-white);
  font-family: var(--font-title);
  line-height: 160%;
  letter-spacing: -0.00188rem;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.6);
}

/*--------------------------------------------------------------
 # Flexible Blocks: Related Content
 --------------------------------------------------------------*/
section.related-content img {
  height: 280px;
}

/*--------------------------------------------------------------
# Flexible Blocks: Related Products
--------------------------------------------------------------*/
section.product-listing .product-image img {
  width: 100%;
  object-fit: cover;
}

/*--------------------------------------------------------------
# Flexible Blocks: Banner (CTA)
 --------------------------------------------------------------*/

/*--------------------------------------------------------------
 # Flexible Blocks: FAQs
 --------------------------------------------------------------*/

/*--------------------------------------------------------------
 # Flexible Blocks: Team
 --------------------------------------------------------------*/

/*--------------------------------------------------------------
 # Flexible Blocks: Gallery
 --------------------------------------------------------------*/
.gallery-block .gallery-image-wrapper img {
  transition: transform 0.3s ease;
}

.gallery-block .gallery-item:hover img {
  transform: scale(1.05);
}

.gallery-block .btn {
  width: fit-content !important;
}

/*--------------------------------------------------------------
 # Flexible Blocks: Rates
 --------------------------------------------------------------*/
.rate-section .service img {
  height: 260px;
}

/*--------------------------------------------------------------
 # Sidebar
 --------------------------------------------------------------*/

/*--------------------------------------------------------------
 # Forms
 --------------------------------------------------------------*/

/* --- Form Banner --- */
form .gform-body .gform_fields {
  display: grid !important;
  gap: 0.375rem !important;
}

form .gform-body input,
form textarea {
  width: 100% !important;
  border: 1px solid var(--color-border) !important;
  border-radius: var(--border-radius-input-form) !important;
  color: var(--color-text-heading) !important;
  transition:
    border-color 0.3s ease,
    box-shadow 0.3s ease !important;
}

form input:focus,
form textarea:focus {
  border-color: var(--color-primary-300) !important;
  box-shadow: var(--box-shadow-input) !important;
  outline: none !important;
}

/* Aceptación de términos */
form input[type="checkbox"] {
  width: auto;
  margin-right: 10px;
  accent-color: var(--color-primary-300);
}

form .gform-body label {
  font-size: 14px;
  color: var(--color-text-heading) !important;
  margin-bottom: 4px;
}

/* Texto del consentimiento */
form .ginput_container_consent label {
  font-size: 13px;
  color: var(--color-text-heading) !important;
  display: flex;
  align-items: center;
  gap: 4px;
}

form .ginput_container_consent a {
  color: var(--color-primary-300);
  text-decoration: underline;
}

form .ginput_container_consent a:hover {
  color: var(--color-primary-400);
}

/* Botón Gravity Forms */
form .gform_footer .gform_button {
  font-weight: 400 !important;
  font-family: var(--font-nav-link) !important;
  text-decoration: none !important;
  transition: var(--transition-btn) !important;
  border: 1px solid !important;
  border-radius: var(--border-radius-button) !important;
  cursor: pointer !important;
  outline: none !important;
  text-transform: uppercase !important;
  line-height: 100% !important;
  letter-spacing: -0.03rem !important;
  background-color: var(--color-primary-300) !important;
  color: var(--color-text-white) !important;
  border-color: transparent !important;
}

form .gform_footer .gform_button:hover,
form .gform_footer .gform_button:active {
  text-decoration: none !important;
  background-color: var(--color-primary-400) !important;
  color: var(--color-text-white) !important;
  border-color: transparent !important;
  box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.15) !important;
}

form .gform_footer .gform_button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

form .gform_footer .gform_button:focus {
  outline: none;
}

/* Ajustes para pantallas más pequeñas */
@media (max-width: 768px) {
  .banner-component form .gform-body .gform-grid-row {
    grid-template-columns: 1fr;
  }
}

/* --- Form Sidebar --- */
.sidebar .gform_fields {
  row-gap: 0 !important;
  column-gap: 8px !important;
}

/* Estilo de los inputs */
.sidebar .contact-form input[type="text"],
.sidebar .contact-form input[type="email"],
.sidebar .contact-form input[type="tel"],
.sidebar .contact-form textarea {
  width: 100%;
  padding: 10px;
  margin-bottom: 8px;
  border: 1px solid var(--color-text-white);
  border-radius: 5px;
  background-color: var(--color-text-white);
  outline: none;
}

.sidebar .contact-form input[type="text"]::placeholder,
.sidebar .contact-form input[type="email"]::placeholder,
.sidebar .contact-form input[type="tel"]::placeholder,
.sidebar .contact-form textarea::placeholder {
  color: #888888;
  font-size: 14px;
}

/* Estilo del textarea */
.sidebar .contact-form textarea {
  resize: none;
  height: 120px;
}

/* Checkbox */
.sidebar .contact-form input[type="checkbox"] {
  margin-right: 10px;
}

.sidebar .contact-form label {
  color: var(--color-text-white);
  font-size: 13px;
  margin-left: 0;
}

/* Botón de enviar */
.sidebar .gform-footer input[type="submit"] {
  background-color: var(--color-primary-400) !important;
  color: var(--color-text-white) !important;
  border: none !important;
  border-radius: var(--border-radius-button) !important;
  font-size: 14px !important;
  cursor: pointer;
  transition: all 0.3s ease !important;
  display: block;
  width: 100% !important;
}

.sidebar .gform-footer input[type="submit"]:hover {
  background-color: var(--color-bg-dark) !important;
}

/* Mensaje de error o de caracteres restantes */
.sidebar .gform-footer .charleft {
  font-size: 12px;
  color: var(--color-text-white);
  margin-bottom: 5px;
}

/* Enlace a la política de privacidad */
.ginput_container_consent {
  margin-top: 16px !important;
}

.sidebar .ginput_container_consent a {
  color: var(--color-text-white);
  text-decoration: underline;
}

.sidebar .ginput_container_consent a:hover {
  text-decoration: none;
}

/* Mensaje de confirmación */
.gform_confirmation_message {
  font-weight: 500 !important;
  line-height: 140% !important;
  border-left: 2px solid var(--color-text-heading) !important;
  padding-left: 16px !important;
}

/* Mensaje de error */
.gform_validation_errors {
  background-color: var(--color-bg-white) !important;
  border: 0 !important;
  padding: 16px !important;
}

.gform_validation_errors ol {
  padding: 0 0 0 16px !important;
  font-size: 13px !important;
  color: var(--color-error-200) !important;
}

.gform_submission_error {
  font-size: 13px !important;
  color: var(--color-error-200) !important;
}

.validation_message {
  margin-bottom: 8px !important;
  margin-top: 0 !important;
}

/*--------------------------------------------------------------
 # Single Post
 --------------------------------------------------------------*/
.page-single .main-img-post {
  max-height: 400px;
}
/*--------------------------------------------------------------
 # 404 Page
 --------------------------------------------------------------*/

/*--------------------------------------------------------------
 # Blog Page
 --------------------------------------------------------------*/
.aside-cat ul {
  border-left: 2px solid var(--color-primary-200);
}

.post-blog img {
  height: 260px;
}

/*--------------------------------------------------------------
 # About Page
 --------------------------------------------------------------*/

/*--------------------------------------------------------------
 # Contact Page
 --------------------------------------------------------------*/
.page-contact .contact-nav i {
  border-radius: 6.25rem;
  border: 1px solid var(--primary);
  background: #ace3e2;
  display: flex;
  padding: 1rem;
  justify-content: center;
  align-items: center;
  height: fit-content;
}

.page-contact .contact-nav i::before {
  color: var(--primary);
  font-size: 24px;
}

.page-contact .contact-nav a:hover {
  color: var(--primary);
}

.page-contact a.nav-link:hover .contact-nav {
  background-color: var(--white);
  box-shadow: rgba(100, 100, 111, 0.15) 0px 5px 16px 0px;
}

/*--------------------------------------------------------------
 # Woocommerce
 --------------------------------------------------------------*/
.menu-item-cart {
  position: relative;
  display: flex;
  align-items: center;
}

.menu-item-cart a {
  position: relative;
  display: flex;
  align-items: center;
  text-decoration: none;
  color: inherit;
}

.menu-item-cart a .cart-count {
  position: absolute;
  top: -5px;
  right: -10px;
  background-color: var(--color-error-200);
  color: var(--color-text-white);
  font-size: 12px;
  font-weight: bold;
  border-radius: 50%;
  width: 20px;
  height: 20px;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* Catálogo de productos (página de tienda) */
.woocommerce-LoopProduct-link,
.woocommerce-LoopProduct-link ins {
  text-decoration: none !important;
}

.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins,
.woocommerce div.product:not(.sale) span.price bdi {
  font-weight: 500 !important;
}

.woocommerce-shop .woocommerce-loop-product__title {
  color: var(--color-text-heading);
  font-family: var(--font-title);
  font-size: 1rem;
  font-weight: 600;
  margin-top: 1.5rem;
}

.woocommerce-shop .price {
  color: var(--color-text-heading) !important;
}

.add_to_cart_button,
.button.product_type_simple,
.single_add_to_cart_button,
.button.product_type_variable {
  display: block !important;
  width: fit-content !important;
  border-radius: 1.5rem !important;
  border: 2px solid var(--color-primary-300) !important;
  background: var(--color-bg-white) !important;
  color: var(--color-primary-300) !important;
  font-family: var(--font-nav-link) !important;
  font-size: 14px !important;
  font-style: normal !important;
  font-weight: 400 !important;
  line-height: 100% !important;
  letter-spacing: -0.03rem !important;
  text-transform: uppercase !important;
  transition: var(--transition-btn) !important;
}

.add_to_cart_button,
.button.product_type_simple,
.button.product_type_variable {
  margin-top: 1rem !important;
}

.add_to_cart_button:hover,
.button.product_type_simple:hover,
.single_add_to_cart_button:hover,
.button.product_type_variable:hover {
  border: 2px solid var(--color-primary-400) !important;
  color: var(--color-primary-400) !important;
}

.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.woocommerce-button,
.woocommerce-Button,
.woocommerce-MyAccount-content .button {
  border-radius: 1.5rem !important;
  border: 2px solid var(--color-primary-300) !important;
  background: var(--color-bg-white) !important;
  color: var(--color-primary-300) !important;
  font-family: var(--font-nav-link) !important;
  font-size: 1rem !important;
  font-style: normal !important;
  font-weight: 400 !important;
  line-height: 100% !important;
  letter-spacing: -0.03rem !important;
  text-transform: uppercase !important;
  transition: var(--transition-btn) !important;
}

.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover,
.woocommerce-button:hover,
.woocommerce-Button:hover,
.woocommerce-MyAccount-content .button:hover {
  border: 2px solid var(--color-primary-400) !important;
  color: var(--color-primary-400) !important;
}

.woocommerce-shop .onsale {
  background-color: var(--color-primary-400) !important;
  width: fit-content;
}

.woocommerce-Input,
.woocommerce-MyAccount-content .input-text {
  padding: 8px;
  background: #cfc8d81f;
  border: 1px solid #cfc8d875;
  border-radius: 3px;
}

.select2-selection.select2-selection--single {
  background: #cfc8d81f;
  border: 1px solid #cfc8d875;
  height: 37px;
  display: flex;
  align-items: center;
}

.select2-selection__arrow {
  top: 5px;
}

select.orderby,
table.variations select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-color: var(--color-bg-white);
  border: 1px solid #ccc;
  border-radius: 4px;
  padding: 6px 10px;
  font-size: 15px;
  color: var(--color-text-card);
  width: 100%;
  max-width: 300px;
  cursor: pointer;
}

select.orderby:focus,
table.variations select:focus {
  border-color: var(--color-border);
  outline: none;
  box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);
}

.select2-container--default
  .select2-results__option--highlighted[aria-selected],
.select2-container--default
  .select2-results__option--highlighted[data-selected] {
  background: #78b8b6;
}

.woocommerce-form a,
.woocommerce-MyAccount-content a {
  text-decoration: underline;
}

/* Single product */
.woocommerce div.product form.cart {
  display: flex;
  align-items: center;
}

.woocommerce div.product form.variations_form.cart {
  flex-direction: column;
  align-items: start;
}

.woocommerce .single_variation_wrap .woocommerce-variation-add-to-cart {
  display: flex;
  align-items: center;
}

a.reset_variations {
  color: var(--color-error-100);
  text-decoration: underline;
}

a.reset_variations:hover {
  color: var(--color-error-200);
  text-decoration: underline;
}

.stock.in-stock {
  color: var(--color-sucess-200) !important;
}

.shop-filters {
  gap: 1rem;
}

.shop-filters .woocommerce-notices-wrapper .woocommerce-message {
  margin-bottom: 0;
}

.wc-block-checkout__terms a {
  text-decoration: underline;
  color: var(--color-primary-300);
}

.wc-block-checkout__terms a:hover {
  color: var(--color-primary-400);
}

/* Archive */
body.archive .card-img-top img {
  height: 200px;
  object-fit: cover;
  width: 100%;
}

/*--------------------------------------------------------------
 # Media Queries - Responsive Adjustments
 --------------------------------------------------------------*/
/* portrait phones */
@media (max-width: 575.98px) {
  section.product-listing .product-image img {
    height: 200px;
  }

  .add_to_cart_button,
  .button.product_type_simple,
  .button.product_type_variable {
    margin-right: auto !important;
    margin-left: auto !important;
  }
}

/* landscape phones */
@media (min-width: 576px) {
  #hero,
  .carousel-background {
    padding-top: var(--padding-top-body);
  }
  section.product-listing .product-image img {
    height: 17.6875rem;
  }
}

@media (max-width: 767.98px) {
  #hero,
  .carousel-background {
    padding-top: var(--padding-top-body-mobile);
  }

  section.gallery-block .row .col-md-6,
  section.gallery-block .row .gallery-image-wrapper {
    border-radius: 0 !important;
  }
}

/* tablets */
@media (min-width: 768px) {
  body:not(.home) {
    padding-top: var(--padding-top-body);
  }

  div.footer-menu {
    padding: 1rem 0rem 1rem 1.5rem;
    border-left: 1px solid var(--color-primary-300);
  }

  section.gallery-block .row .col-lg-8 .row > div {
    padding-left: 8px !important;
  }
}

@media (max-width: 991.98px) {
  section.header-split .image-wrapper {
    position: relative !important;
    width: 100%;
    height: 400px !important;
  }
  .banner-component .col-image {
    height: 500px;
  }

  .alternating-block .image-container {
    height: 360px;
  }
  .alternating-block img {
    height: 380px;
  }
}

/* desktops */
@media (min-width: 992px) {
}

@media (min-width: 992px) and (max-width: 1199.98px) {
  .header .img-brand {
    width: 160px;
  }
  .header .navbar-nav > .nav-item > .nav-link {
    font-size: 15px;
  }
}

@media (max-width: 1199.98px) {
  .header.bg-transparent .navbar-collapse .navbar-nav {
    background: rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(4px) brightness(0.75);
    padding: 0.5rem;
    border-radius: 8px;
    overflow: hidden;
  }
}

/* large desktops */
@media (min-width: 1200px) {
}

@media (max-width: 1399.98px) {
}

@media (min-width: 1400px) {
}

/* Bloque Flexible: banner */

.cta {
  padding: 6.44rem 0;
}

/* Page 404 */
.page-404 .site-main {
  height: calc(100vh - 200px);
}
.error-404 {
  max-width: 620px;
  height: calc(100vh - 200px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.error-404 .link-home {
  color: var(--color-text-white);
}
.error-404 .link-home:hover {
  color: var(--color-primary);
}

.page-404-header p {
  line-height: 2.5rem;
}

/* LearnDash */
.ld-brand-logo img {
  max-width: 250px;
}
fieldset.wpProQuiz_question {
  border: none;
}

/* Responsive */

@media (max-width: 768px) {
  .btn-contact-mobile {
    position: fixed;
    bottom: 0;
    width: 100%;
    left: 0;
    padding: 1rem !important;
    font-size: 1rem !important;
    z-index: 2000;
    text-align: center;
  }
}
