/* ==========================================================================
   ROSSA Web · Adaptación a WordPress (Elementor + Astra)
   Se carga después de rossa.css (estilos de la maqueta). Todo va acotado a
   las clases .rw.rw-page que el plugin añade al <body>.
   ========================================================================== */

/* Reinicios de baja prioridad: neutralizan estilos de Astra y Elementor que
   la maqueta no tenía, sin pisar las reglas de componente de rossa.css. */
.rw.rw-page :where(.elementor-widget:not(:last-child)) { margin-block-end: 0; }
.rw.rw-page :where(.elementor button) {
  min-height: 0;
  line-height: normal;
  letter-spacing: normal;
  text-transform: none;
  box-shadow: none;
}
.rw.rw-page :where(.elementor input) { height: auto; box-shadow: none; }
.rw.rw-page :where(.elementor label) { font-size: inherit; font-weight: inherit; line-height: inherit; }
.rw.rw-page :where(.elementor input[type="range"]) { font-size: 13.3333px; line-height: normal; }
.rw.rw-page :where(.elementor .rw-text) p:last-child { margin-bottom: 0; }


/* ==========================================================================
   Adaptación al marcado de Elementor
   ========================================================================== */

/* Contenido a ancho completo dentro de Astra */
.rw.rw-page #content > .ast-container,
.rw.rw-page .site-content > .ast-container {
  display: block;
  max-width: none;
  padding: 0;
}
.rw.rw-page .elementor-element.e-con { min-width: 0; }

/* Contenedores flex que en la maqueta eran filas */
.rw.rw-page .btn-group,
.rw.rw-page .access__products { flex-direction: row; }

/* Titulares nativos con clase de la maqueta */
.rw.rw-page .hero__title .elementor-heading-title {
  margin: 0;
  font-size: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}
.rw.rw-page .rw-heading .elementor-heading-title { font-family: inherit; }

/* Textos nativos */
.rw.rw-page .platform__text .platform__hint { margin: 18px 0 15px; }
.rw.rw-page .platform__text .platform__hint p { max-width: none; font-size: 15px; }
.rw.rw-page .access__content .rw-text p { max-width: 540px; font-size: 18px; }

/* Botones nativos de Elementor con el aspecto de .btn */
.rw.rw-page .rw-btn .elementor-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 15px 26px;
  background: none;
  border: 2px solid transparent;
  border-radius: 8px;
  box-shadow: none;
  color: inherit;
  fill: currentColor;
  font-family: inherit;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  transition: background-color .2s, color .2s, border-color .2s;
}
.rw.rw-page .rw-btn,
.rw.rw-page .rw-btn .elementor-button-wrapper { display: flex; }
.rw.rw-page .rw-btn .elementor-button-content-wrapper { display: inline-flex; align-items: center; gap: 8px; }
.rw.rw-page .rw-btn--primary .elementor-button { background: var(--rossa-primary); color: var(--rossa-white); }
.rw.rw-page .rw-btn--primary .elementor-button:hover,
.rw.rw-page .rw-btn--primary .elementor-button:focus { background: var(--rossa-primary-dark); color: var(--rossa-white); }
.rw.rw-page .rw-btn--outline .elementor-button { border-color: var(--rossa-secondary); color: var(--rossa-secondary); }
.rw.rw-page .rw-btn--outline .elementor-button:hover,
.rw.rw-page .rw-btn--outline .elementor-button:focus { background: var(--rossa-secondary); color: var(--rossa-white); }
.rw.rw-page .rw-btn--link .elementor-button {
  padding: 0;
  border: 0;
  color: var(--rossa-primary);
  text-underline-offset: 4px;
}
.rw.rw-page .rw-btn--link .elementor-button:hover,
.rw.rw-page .rw-btn--link .elementor-button:focus { background: none; color: var(--rossa-primary); text-decoration: underline; }

@media (max-width: 640px) {
  .rw.rw-page .btn-group .rw-btn--primary,
  .rw.rw-page .btn-group .rw-btn--primary .elementor-button-wrapper,
  .rw.rw-page .btn-group .rw-btn--primary .elementor-button { width: 100%; }
}

/* Imágenes nativas */
.rw.rw-page .rw-image img { display: block; }
.rw.rw-page .access__products .rw-image img { height: auto; }
.rw.rw-page .cta__symbol img { width: 100%; }
.rw.rw-page .cta__same-wrap .cta__same { margin-top: 28px; }

/* Estilos de Astra para citas y etiquetas que la maqueta no tenía */
.rw.rw-page .voices__panel blockquote { padding: 0; border: 0; font-style: normal; }
.rw.rw-page .voices__panel blockquote p { font-style: normal; }
.rw.rw-page .sizer__label { line-height: 1.65; }
.rw.rw-page .range__label { font-weight: 400; }

/* Controles deslizantes: Astra pinta su propia barra y su propio tirador */
.rw.rw-page .range input::-webkit-slider-runnable-track,
.rw.rw-page .sizer__range::-webkit-slider-runnable-track {
  height: 100%;
  background: transparent;
  border: 0;
  box-shadow: none;
}
.rw.rw-page .range input::-moz-range-track,
.rw.rw-page .sizer__range::-moz-range-track {
  height: 100%;
  background: transparent;
  border: 0;
  box-shadow: none;
}
.rw.rw-page .range input::-webkit-slider-thumb { margin-top: -8px; box-shadow: none; }
.rw.rw-page .sizer__range::-webkit-slider-thumb { margin-top: -9px; box-shadow: 0 4px 10px rgba(0, 48, 60, .25); }


/* ==========================================================================
   Cabecera de Astra con el aspecto de la maqueta
   ========================================================================== */
.rw.rw-page #masthead {
  position: sticky;
  top: var(--wp-admin--admin-bar--height, 0px);
  z-index: 50;
  background: rgba(255, 255, 255, .96);
  border-bottom: 1px solid transparent;
  transition: border-color .2s;
}
.rw.rw-page #masthead.is-scrolled { border-bottom-color: var(--rossa-border); }
.rw.rw-page #masthead .main-header-bar {
  min-height: 76px;
  padding: 0;
  background: transparent;
  border: 0;
}
.rw.rw-page #masthead .site-primary-header-wrap,
.rw.rw-page #ast-mobile-header .ast-builder-grid-row {
  width: 100%;
  max-width: calc(var(--container) + var(--gutter) * 2);
  min-height: 76px;
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.rw.rw-page #masthead .ast-builder-grid-row { align-items: center; min-height: 76px; }
.rw.rw-page #masthead .site-branding { padding: 0; }
.rw.rw-page #masthead .custom-logo-link img { width: 123px; max-width: none; height: auto; }
.rw.rw-page #masthead .site-header-primary-section-right { gap: 28px; }
.rw.rw-page #masthead .site-header-primary-section-right > .ast-builder-layout-element { margin: 0; padding: 0; }

/* Menú principal */
.rw.rw-page .ast-builder-menu-1 .main-header-menu { gap: 4px; background: none; }
.rw.rw-page .ast-builder-menu-1 .main-header-menu > .menu-item > .menu-link {
  padding: 10px 12px;
  border-radius: 6px;
  color: var(--rossa-secondary);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.65;
}
.rw.rw-page .ast-builder-menu-1 .main-header-menu > .menu-item:hover > .menu-link,
.rw.rw-page .ast-builder-menu-1 .main-header-menu > .menu-item > .menu-link:hover,
.rw.rw-page .ast-builder-menu-1 .main-header-menu > .menu-item.focus > .menu-link { color: var(--rossa-primary); background: none; }
.rw.rw-page .ast-builder-menu-1 .main-header-menu > .menu-item.current-menu-item > .menu-link { color: var(--rossa-secondary); }
.rw.rw-page .ast-builder-menu-1 .main-header-menu > .menu-item-has-children > .menu-link .dropdown-menu-toggle { display: none; }
.rw.rw-page .ast-builder-menu-1 .main-header-menu > .menu-item-has-children > .menu-link::after {
  content: "";
  display: inline-block;
  width: 6px; height: 6px;
  margin-left: 8px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-3px) rotate(45deg);
}

/* Submenús */
.rw.rw-page .ast-builder-menu-1 .main-header-menu .sub-menu {
  width: 240px;
  padding: 10px;
  background: var(--rossa-white);
  border: 1px solid var(--rossa-border);
  border-radius: var(--radius);
  box-shadow: 0 18px 40px -18px rgba(0, 48, 60, .25);
}
.rw.rw-page .ast-builder-menu-1 .main-header-menu .rw-menu-cols > .sub-menu { display: grid; grid-template-columns: 1fr 1fr; width: 400px; }
.rw.rw-page .ast-builder-menu-1 .main-header-menu .sub-menu .menu-item { border: 0; }
.rw.rw-page .ast-builder-menu-1 .main-header-menu .sub-menu .menu-link {
  padding: 9px 12px;
  border: 0;
  border-radius: 6px;
  color: var(--rossa-secondary);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.65;
}
.rw.rw-page .ast-builder-menu-1 .main-header-menu .sub-menu .menu-link:hover { background: var(--rossa-ice); color: var(--rossa-secondary); }
.rw.rw-page .ast-builder-menu-1 .main-header-menu .sub-menu .ast-icon { display: none; }

/* Botón de presupuesto */
.rw.rw-page .ast-header-button-1 .ast-custom-button {
  padding: 10px 18px;
  background: var(--rossa-primary);
  border: 2px solid transparent;
  border-radius: 8px;
  color: var(--rossa-white);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
  transition: background-color .2s;
}
.rw.rw-page .ast-header-button-1 .ast-custom-button:hover { background: var(--rossa-primary-dark); color: var(--rossa-white); }

/* Cabecera móvil a partir de 1080 px, como en la maqueta (Astra lo hace a 921 px) */
@media (max-width: 1080px) {
  .rw.rw-page #ast-desktop-header { display: none; }
  .rw.rw-page #ast-mobile-header { display: block; }
}
@media (min-width: 1081px) {
  .rw.rw-page #ast-mobile-header { display: none; }
  .rw.rw-page #ast-desktop-header { display: block; }
}

/* Cabecera móvil */
.rw.rw-page #ast-mobile-header .main-header-bar { min-height: 76px; padding: 0; background: transparent; border: 0; }
.rw.rw-page #ast-mobile-header .custom-logo-link img { width: 123px; }
.rw.rw-page #ast-mobile-header .menu-toggle {
  display: grid;
  place-items: center;
  width: 44px; height: 44px;
  padding: 0;
  background: none;
  border: 0;
  color: var(--rossa-secondary);
}
.rw.rw-page #ast-mobile-header .menu-toggle .ast-mobile-svg { width: 24px; height: 24px; fill: var(--rossa-secondary); }
.rw.rw-page .ast-mobile-header-content {
  max-height: calc(100vh - 76px);
  padding: 16px var(--gutter) 24px;
  overflow-y: auto;
  background: var(--rossa-white);
  border-bottom: 1px solid var(--rossa-border);
}
.rw.rw-page .ast-mobile-header-content .main-header-menu { background: none; border: 0; }
.rw.rw-page .ast-mobile-header-content .main-header-menu .menu-item { border: 0; }
.rw.rw-page .ast-mobile-header-content .main-header-menu > .menu-item > .menu-link {
  padding: 12px 0;
  border: 0;
  background: none;
  color: var(--rossa-secondary);
  font-size: 17px;
  font-weight: 500;
  line-height: 1.65;
}
.rw.rw-page .ast-mobile-header-content .main-header-menu .sub-menu {
  display: block !important;
  padding: 0 0 8px 12px;
  background: none;
  border: 0;
  box-shadow: none;
}
.rw.rw-page .ast-mobile-header-content .main-header-menu .sub-menu .menu-link {
  padding: 6px 0;
  border: 0;
  background: none;
  color: var(--rossa-text);
  font-size: 15px;
  line-height: 1.65;
}
.rw.rw-page .ast-mobile-header-content .main-header-menu .sub-menu .menu-link:hover { color: var(--rossa-primary); }
.rw.rw-page .ast-mobile-header-content .ast-menu-toggle,
.rw.rw-page .ast-mobile-header-content .menu-link .ast-icon,
.rw.rw-page .ast-mobile-header-content .dropdown-menu-toggle,
.rw.rw-page #ast-mobile-header .ast-mobile-header-content .menu-link .ast-icon { display: none; }
.rw.rw-page .ast-mobile-header-content .ast-header-button-1 { margin-top: 16px; }
.rw.rw-page .ast-mobile-header-content .ast-header-button-1 .ast-custom-button { display: inline-block; }

/* ==========================================================================
   Pie de Astra con el aspecto de la maqueta
   ========================================================================== */
.rw.rw-page #colophon {
  background: var(--rossa-secondary);
  color: var(--rossa-on-dark);
  font-size: 15px;
}
.rw.rw-page #colophon .site-primary-footer-wrap,
.rw.rw-page #colophon .site-below-footer-wrap { padding: 0; background: transparent; border: 0; }
.rw.rw-page #colophon .ast-builder-grid-row-container-inner {
  width: 100%;
  max-width: calc(var(--container) + var(--gutter) * 2);
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.rw.rw-page #colophon .site-primary-footer-inner-wrap {
  display: grid;
  grid-template-columns: 1.4fr repeat(3, 1fr);
  gap: 40px;
  max-width: none;
  padding: 72px 0 56px;
}
.rw.rw-page #colophon .site-footer-section { margin: 0; padding: 0; }
.rw.rw-page #colophon .footer-widget-area,
.rw.rw-page #colophon .widget { margin: 0; padding: 0; }
.rw.rw-page #colophon .rw-footer-logo { margin: 0 0 18px; }
.rw.rw-page #colophon .rw-footer-logo img { width: 123px; filter: brightness(0) invert(1); }
.rw.rw-page #colophon .rw-footer-text { max-width: 280px; margin: 0 0 1em; color: var(--rossa-on-dark); }
.rw.rw-page #colophon .rw-footer-title {
  margin: 0 0 14px;
  color: var(--rossa-white);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: 0;
}
.rw.rw-page #colophon .rw-footer-links { margin: 0; padding: 0; list-style: none; }
.rw.rw-page #colophon .rw-footer-links li { margin: 0; padding: 4px 0; }
.rw.rw-page #colophon a { color: var(--rossa-on-dark); text-decoration: none; }
.rw.rw-page #colophon a:hover { color: var(--rossa-white); text-decoration: underline; }

.rw.rw-page #colophon .site-below-footer-inner-wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 12px 24px;
  min-height: 0;
  padding: 24px 0;
  border-top: 1px solid rgba(255, 255, 255, .14);
  font-size: 14px;
}
.rw.rw-page #colophon .ast-footer-copyright,
.rw.rw-page #colophon .ast-footer-copyright p { margin: 0; color: var(--rossa-on-dark); font-size: 14px; }
.rw.rw-page #colophon .footer-navigation .menu,
.rw.rw-page #colophon .footer-nav-wrap ul { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 0; padding: 0; list-style: none; }
.rw.rw-page #colophon .footer-navigation .menu-item { margin: 0; padding: 0; }
.rw.rw-page #colophon .footer-navigation .menu-link { padding: 0; color: var(--rossa-on-dark); font-size: 14px; line-height: 1.65; }

@media (max-width: 860px) {
  .rw.rw-page #colophon .site-primary-footer-inner-wrap { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .rw.rw-page #colophon .site-primary-footer-inner-wrap { grid-template-columns: 1fr; }
}
