/*
Theme Name: Puntofilipino
Theme URI: https://www.mowomo.com
Description: Tema desarrollado a medida para puntofilipino.com
Version: 1.0.0
Author: narita
Author URI: https://www.mowomo.com
Text Domain: puntofilipino
Domain Path: /languages
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

/* ==========================================================
   ÍNDICE
   (Sin @import: normalize, fuentes, header y footer se cargan
   desde functions.php con wp_enqueue_style.)
   ==========================================================
   01. Reset
   02. Variables
   03. Base
   04. Layout / contenedores
   05. Botones y acciones (nativas + Contact Form 7 multi-step)
   06. Formularios
   07. Formulario de búsqueda
   08. Header (estilos en assets/css/header.css)
   09. Footer (estilos en assets/css/footer.css)
   10. Home video (bloque en plugin figma-to-mwm-block)
   11. Componentes (tarjeta proyecto)
   12. Página 404
   ========================================================== */

/* ==========================================================
   01. Reset
   ========================================================== */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* ==========================================================
   02. Variables
   ========================================================== */
:root {
  /* Colors */
  --mwm--color-white: #ffffff;
  --mwm--color-white-50: rgba(255, 255, 255, 0.5);
  --mwm--color-white-70: rgba(255, 255, 255, 0.7);
  --mwm--color-black: #000;

  /* Borders-radius */
  --mwm--border-radius-xs: 0.25rem;
  --mwm--border-radius-md: 1rem;
  --mwm--border-radius-xl: 2.5rem;
  --mwm--border-radius-full: 25rem;

  /* Spacing */
  --mwm--spacing-01: 0.5rem;
  --mwm--spacing-02: 1rem;
  --mwm--spacing-03: 1.5rem;
  --mwm--spacing-04: 2rem;
  --mwm--spacing-05: 2.5rem;
  --mwm--spacing-10: 5rem;
  --mwm--spacing-15: 7.5rem;
  --mwm--spacing-18: 9rem;
  --mwm--spacing-20: 10rem;
  --mwm--spacing-max: 12.5rem;

  /* Font-family */
  --mwm--font-family: "Xanh Mono";

  /* Font-weight */
  --mwm--font-weight-regular: 400;

  /* Font-size */
  --mwm--font-size-d100: 1.75rem;
  --mwm--font-size-h100: 1.375rem;
  --mwm--font-size-b100: 1.125rem;
  --mwm--font-size-b200: 1rem;

  /* Container */
  --mwm-max-width: 100%;
  --mwm--max-padding: 1.25rem;
  --mwm--max-width-2: 52.875rem;
}

@media (min-width: 992px) {
  :root {
    --mwm--font-size-d100: 1.75rem;
    --mwm--font-size-h100: 1.375rem;
    --mwm--font-size-b100: 1.125rem;
    --mwm--font-size-b200: 1rem;
  }
}
@media (min-width: 1200px) {
  :root {
    --mwm--font-size-d100: 2rem;
    --mwm--font-size-h100: 1.375rem;
    --mwm--font-size-b100: 1.25rem;
    --mwm--font-size-b200: 1.125rem;
  }
}

/* ==========================================================
   03. Base
   ========================================================== */
body {
  position: relative;
  font-family: var(--mwm--font-family);
  font-weight: var(--mwm--font-weight-regular);
  line-height: 1.2;
  color: var(--mwm--color-white);
  background-color: var(--mwm--color-black);
  font-size: var(--mwm--font-size-b200);
}

a {
  color: var(--mwm--color-white);
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--mwm--font-family);
  font-weight: var(--mwm--font-weight-regular);
  line-height: 1.2;
  color: var(--mwm--color-white);
}

h1 {
  font-size: var(--mwm--font-size-d100);
}

h2 {
  font-size: var(--mwm--font-size-h100);
}

h3 {
  font-size: var(--mwm--font-size-b100);
}

h4, h5, h6 {
  font-size: var(--mwm--font-size-b200);
}
/* ==========================================================
   04. Layout / contenedores
   ========================================================== */

/* El header es sticky y aporta su altura al flujo; no hace falta compensar con padding */
.site-main {
  padding-top: 5rem;
}

.mwm-max-1 {
  max-width: calc(var(--mwm-max-width) + 2.5rem);
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  margin: 0 auto;
}

.mwm-max-2 {
  --mwm--max-width: var(--mwm--max-width-2);
  margin-left: auto;
  margin-right: auto;
  max-width: calc(var(--mwm--max-width-2) + var(--mwm--max-padding) * 2);
  padding-left: var(--mwm--max-padding);
  padding-right: var(--mwm--max-padding);
}


@media (max-width: 767px) {
  .mwm-px-mobile{
    padding-left: 3.5rem;
    padding-right: 3.5rem;
  }
}


/* Main: espaciado vertical entre secciones (p. ej. varios bloques en home) */
.mwm-main-container > * {
  margin-bottom: 2.5rem;
}

@media (min-width: 768px) {
  .mwm-main-container > * {
    margin-bottom: 4rem;
  }
}

@media (min-width: 1280px) {
  .mwm-main-container > * {
    margin-bottom: 5rem;
  }
}

/* Páginas de texto legales / legales */
.mwm-page-text {
  color: var(--mwm--color-white);
}

.mwm-page-text .wp-block-group div {
  padding: 0 !important;
}

.mwm-page-text .wp-block-group {
  margin-bottom: 0.5rem;
}

.mwm-page-text__wrapper {
  padding-bottom: 2rem;
  padding-top: 2rem;
}

@media (min-width: 768px) {
  .mwm-page-text__wrapper {
    padding-bottom: 2.5rem;
    padding-top: 2.5rem;
  }
}

@media (min-width: 1280px) {
  .mwm-page-text__wrapper {
    padding-bottom: 4rem;
    padding-top: 4rem;
  }
}

.mwm-page-text__title {
  margin-bottom: 1.5rem;
  font-size: var(--mwm--font-size-d100);
  font-weight: var(--mwm--font-weight-regular);
  line-height: 1.2;
  color: var(--mwm--color-white);
}

.mwm-page-text h2,
.mwm-page-text h3,
.mwm-page-text h4,
.mwm-page-text h5,
.mwm-page-text h6 {
  color: inherit;
  margin-bottom: 0.5rem;
  font-weight: var(--mwm--font-weight-regular);
  line-height: 1.2;
}

.mwm-page-text p,
.mwm-page-text li,
.mwm-page-text ul,
.mwm-page-text ol {
  font-family: var(--mwm--font-family);
  font-size: var(--mwm--font-size-b100);
  font-weight: var(--mwm--font-weight-regular);
  line-height: 1.5;
}

.mwm-page-text__content {
  font-size: var(--mwm--font-size-b100);
  line-height: 1.5;
}

.mwm-page-text__content > *:first-child {
  margin-top: 0;
}

.mwm-page-text strong {
  font-weight: 600;
}

.mwm-page-text a {
  color: var(--mwm--color-white);
  text-decoration: underline;
}

.mwm-page-text a:hover,
.mwm-page-text a:focus-visible {
  opacity: 0.75;
}

.mwm-page-text__content ul,
.mwm-page-text__content ol {
  margin-bottom: 1em;
  padding-left: 1.25em;
}

.mwm-page-text__content .wp-block-table {
  margin: 1em 0;
  overflow-x: auto;
}

.mwm-page-text__empty {
  font-size: var(--mwm--font-size-b100);
  margin: 0;
}

@media (min-width: 768px) {
  .mwm-page-text__title {
    margin-bottom: 2.5rem;
  }
}

/* ==========================================================
   05. Botones y acciones (nativas + Contact Form 7 multi-step)
   ========================================================== */

.cf7mls-btns .cf7mls_next.action-button,
.cf7mls-btns .cf7mls_back.action-button {
  margin: 0;
  padding: 0;
}

button,
input[type="button"],
input[type="submit"],
.btn-link,
.cf7mls_next.action-button,
.cf7mls_back.action-button {
  cursor: pointer;
  background: transparent;
  border: 0;
  box-shadow: none;
  color: var(--mwm--color-white);
  display: inline-flex;
  gap: 0.5rem;
  align-items: center;
  justify-content: center;
  line-height: 1;
  opacity: 1;
  text-decoration: none;
  transition: all 0.3s;
  user-select: none;
  font-weight: var(--mwm--font-weight-regular);
  position: relative;
  padding-right: 1.875rem !important;
}

.cf7mls_back.action-button {
  padding-left: 1.875rem !important;
  padding-right: 0 !important;
}

.cf7mls_next.action-button::after {
  content: "";
  display: block;
  width: 21px;
  height: 16px;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='22' height='16' viewBox='0 0 22 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M2.56143 0C2.20319 0.399093 1.82106 0.985637 1.41506 1.75964C1.02099 2.53363 0.686632 3.44671 0.411979 4.49886C0.137327 5.56311 0 6.73016 0 8C0 9.26984 0.137327 10.4369 0.411979 11.5011C0.686632 12.5654 1.02099 13.4785 1.41506 14.2404C1.82106 15.0144 2.20319 15.6009 2.56143 16H3.06297C2.72861 15.6009 2.37634 15.0144 2.00616 14.2404C1.64791 13.4785 1.34341 12.5654 1.09264 11.5011C0.84187 10.4369 0.716484 9.26984 0.716484 8C0.716484 6.73016 0.84187 5.56311 1.09264 4.49886C1.34341 3.44671 1.64791 2.53363 2.00616 1.75964C2.37634 0.985637 2.72861 0.399093 3.06297 0H2.56143Z' fill='white'/%3e%3cpath d='M18.2704 0C18.6047 0.399093 18.951 0.985637 19.3093 1.75964C19.6794 2.53363 19.9899 3.44671 20.2407 4.49886C20.4915 5.56311 20.6168 6.73016 20.6168 8C20.6168 9.26984 20.4915 10.4369 20.2407 11.5011C19.9899 12.5654 19.6794 13.4785 19.3093 14.2404C18.951 15.0144 18.6047 15.6009 18.2704 16H18.7719C19.1421 15.6009 19.5242 15.0144 19.9183 14.2404C20.3123 13.4785 20.6467 12.5654 20.9214 11.5011C21.196 10.4369 21.3333 9.26984 21.3333 8C21.3333 6.73016 21.196 5.56311 20.9214 4.49886C20.6467 3.44671 20.3123 2.53363 19.9183 1.75964C19.5242 0.985637 19.1421 0.399093 18.7719 0H18.2704Z' fill='white'/%3e%3cpath d='M16.3292 8L11.5343 3.2L10.895 3.84005L14.5988 7.54783L5.6625 7.54783V8.45217L14.5988 8.45217L10.895 12.16L11.5344 12.8L16.3292 8Z' fill='white'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right center;
  background-size: 1.25rem;
  transition: all 0.3s;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
}

.cf7mls_back.action-button::before {
  content: "";
  display: block;
  width: 21px;
  height: 16px;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='22' height='16' viewBox='0 0 22 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M2.56143 0C2.20319 0.399093 1.82106 0.985637 1.41506 1.75964C1.02099 2.53363 0.686632 3.44671 0.411979 4.49886C0.137327 5.56311 0 6.73016 0 8C0 9.26984 0.137327 10.4369 0.411979 11.5011C0.686632 12.5654 1.02099 13.4785 1.41506 14.2404C1.82106 15.0144 2.20319 15.6009 2.56143 16H3.06297C2.72861 15.6009 2.37634 15.0144 2.00616 14.2404C1.64791 13.4785 1.34341 12.5654 1.09264 11.5011C0.84187 10.4369 0.716484 9.26984 0.716484 8C0.716484 6.73016 0.84187 5.56311 1.09264 4.49886C1.34341 3.44671 1.64791 2.53363 2.00616 1.75964C2.37634 0.985637 2.72861 0.399093 3.06297 0H2.56143Z' fill='white'/%3e%3cpath d='M18.2704 0C18.6047 0.399093 18.951 0.985637 19.3093 1.75964C19.6794 2.53363 19.9899 3.44671 20.2407 4.49886C20.4915 5.56311 20.6168 6.73016 20.6168 8C20.6168 9.26984 20.4915 10.4369 20.2407 11.5011C19.9899 12.5654 19.6794 13.4785 19.3093 14.2404C18.951 15.0144 18.6047 15.6009 18.2704 16H18.7719C19.1421 15.6009 19.5242 15.0144 19.9183 14.2404C20.3123 13.4785 20.6467 12.5654 20.9214 11.5011C21.196 10.4369 21.3333 9.26984 21.3333 8C21.3333 6.73016 21.196 5.56311 20.9214 4.49886C20.6467 3.44671 20.3123 2.53363 19.9183 1.75964C19.5242 0.985637 19.1421 0.399093 18.7719 0H18.2704Z' fill='white'/%3e%3cpath d='M5.6625 8L10.4573 3.2L11.0967 3.84005L7.39289 7.54783L16.3292 7.54783V8.45217L7.39289 8.45217L11.0967 12.16L10.4573 12.8L5.6625 8Z' fill='white'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: left center;
  background-size: 1.25rem;
  transition: all 0.3s;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}

/* ==========================================================
   06. Formularios
   ========================================================== */

label {
  cursor: pointer;
  display: block;
  margin-bottom: .75rem;
}

form br {
  display: none;
}

/* Fieldset */
fieldset {
  background: transparent;
  border: 0;
  margin: 2rem 0;
  padding: 2rem;
}

fieldset legend {
  float: left;
  font-size: 1rem;
  font-weight: var(--mwm--font-weight-regular);
  margin-bottom: 1.5rem;
}

/*
 * Contact Form 7 Multi-Step Forms: cada paso va en <fieldset class="fieldset-cf7mls">.
 * Los pasos inactivos se ocultan con height:0, overflow:hidden, opacity:0, etc.
 * El padding/margin del fieldset del tema hace que el contenido “se cuele” y se vean todos los pasos a la vez.
 */
.wpcf7-form fieldset.fieldset-cf7mls {
  margin: 0;
  padding: 0;
  min-height: 0;
}

.wpcf7-form fieldset.fieldset-cf7mls legend {
  float: none;
  margin: 0;
  padding: 0;
  width: auto;
}

/* Campos */
input:not([type=checkbox], [type=radio]),
textarea,
select {
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
}

input[type=text],
input[type=email],
input[type=url],
input[type=password],
input[type=search],
input[type=number],
input[type=tel],
input[type=range],
input[type=date],
input[type=month],
input[type=week],
input[type=time],
input[type=datetime],
input[type=datetime-local],
input[type=color],
textarea,
select {
  background: transparent;
  border: 1px solid var(--mwm--color-white);
  border-radius: 0;
  color: var(--mwm--color-white);
  display: block;
  padding: 0.5rem 0.75rem;
  width: 100%;
}

input[type=text]:focus,
input[type=email]:focus,
input[type=url]:focus,
input[type=password]:focus,
input[type=search]:focus,
input[type=number]:focus,
input[type=tel]:focus,
input[type=range]:focus,
input[type=date]:focus,
input[type=month]:focus,
input[type=week]:focus,
input[type=time]:focus,
input[type=datetime]:focus,
input[type=datetime-local]:focus,
input[type=color]:focus,
textarea:focus,
select:focus {
  border-color: var(--mwm--color-white);
}

/* Select */
select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-clip: border-box;
  -moz-background-clip: border-box;
  -webkit-background-clip: border-box;
  background-color: transparent;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath fill='%239a9a9a' d='M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z'%3E%3C/path%3E%3C/svg%3E");
  background-position: right center;
  background-repeat: no-repeat;
  background-size: 2em 1em;
  border-radius: 0;
  color: var(--mwm--color-white);
  max-width: 100%;
  padding-right: 1.25em;
  position: relative;
}

/* Checkbox y radio */
input[type=radio],
input[type=checkbox] {
  -moz-appearance: none;
  appearance: none;
  -webkit-appearance: none;
  background-color: transparent;
  border: 1px solid var(--mwm--color-white);
  border-radius: 50%;
  cursor: pointer;
  height: 0.75rem;
  margin-right: 0.5rem;
  position: relative;
  vertical-align: middle;
  width: 0.75rem;
  color: var(--mwm--color-white-50);
}

input[type=checkbox]{
  border-radius: 0;
}

input[type=radio]:checked::after,
input[type=checkbox]:checked::after {
  background: var(--mwm--color-white);
  border-radius: 0;
  content: "";
  display: block;
  height: 0.375rem;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 0.375rem;
}

input[type=radio]:checked::after{
  border-radius: 50%;
}

/* GDPR */
.gdpr button {
  width: unset;
}

/* Placeholder */
::-webkit-input-placeholder {
  color: var(--mwm--color-white-50);
  font-family: var(--mwm--font-family);
}

:-moz-placeholder {
  color: var(--mwm--color-white-50);
  font-family: var(--mwm--font-family);
}

::-moz-placeholder {
  color: var(--mwm--color-white-50);
  font-family: var(--mwm--font-family);
  opacity: 1;
}

:-ms-input-placeholder {
  color: var(--mwm--color-white-50);
  font-family: var(--mwm--font-family);
}

/* Contact Form 7 */
.wpcf7-list-item {
  margin: 0;
}

.wpcf7-not-valid-tip {
  margin-top: 0.5rem;
}

/*
 * Formularios de paso CF7: #form-comunication, #form-professional.
 * Columna flex + gap; radios, checkboxes de lista y campos alineados con el diseño.
 */
#form-comunication.step-form-container,
#form-professional.step-form-container {
  --form-step-stack-gap: 2rem;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--form-step-stack-gap);
  font-family: var(--mwm--font-family);
}

/* Cabecera: título + descripción */
#form-comunication .form-header,
#form-professional .form-header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.25rem;
}

#form-comunication .form-header h2,
#form-professional .form-header h2 {
  margin: 0;
  color: var(--mwm--color-white);
  font-size: 22px;
  font-weight: var(--mwm--font-weight-regular);
  line-height: 1.2;
}

#form-comunication .step-description,
#form-professional .step-description {
  margin: 0;
  max-width: 100%;
  padding-right: 40px;
  color: var(--mwm--color-white-50);
  font-size: 18px;
  font-weight: var(--mwm--font-weight-regular);
  line-height: 1.2;
  text-align: justify;
}

/* Grupos de campo: label arriba, 12px hasta el control */
#form-comunication .field-group,
#form-professional .field-group {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
}

#form-comunication .field-group > label,
#form-professional .field-group > label {
  color: var(--mwm--color-white);
  font-size: 20px;
  font-weight: var(--mwm--font-weight-regular);
  line-height: 1.2;
}

/* Texto / email / url / textarea */
#form-comunication .field-group input[type="text"],
#form-comunication .field-group input[type="email"],
#form-comunication .field-group input[type="url"],
#form-comunication .field-group textarea,
#form-professional .field-group input[type="text"],
#form-professional .field-group input[type="email"],
#form-professional .field-group input[type="url"],
#form-professional .field-group textarea {
  width: 100%;
  margin: 0;
  padding: 8px 12px;
  border: 1px solid var(--mwm--color-white-50);
  border-radius: 0;
  background: transparent;
  color: var(--mwm--color-white);
  font-family: var(--mwm--font-family);
  font-size: 18px;
  font-weight: var(--mwm--font-weight-regular);
  line-height: 1.2;
}

#form-comunication .field-group textarea,
#form-professional .field-group textarea {
  min-height: 6rem;
  resize: vertical;
}

#form-comunication .field-group input[type="text"]:focus,
#form-comunication .field-group input[type="email"]:focus,
#form-comunication .field-group input[type="url"]:focus,
#form-comunication .field-group textarea:focus,
#form-professional .field-group input[type="text"]:focus,
#form-professional .field-group input[type="email"]:focus,
#form-professional .field-group input[type="url"]:focus,
#form-professional .field-group textarea:focus {
  border-color: var(--mwm--color-white);
  outline: none;
}

/* Listas radio (hueco entre bloques = gap del contenedor) */
#form-comunication .field-group.radio-list,
#form-professional .field-group.radio-list {
  gap: 1.25rem;
}

#form-comunication .field-group.radio-list .wpcf7-form-control-wrap,
#form-professional .field-group.radio-list .wpcf7-form-control-wrap {
  width: 100%;
}

#form-comunication .field-group.radio-list .wpcf7-radio,
#form-professional .field-group.radio-list .wpcf7-radio {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.25rem;
  width: 100%;
}

#form-comunication .field-group.radio-list .wpcf7-list-item,
#form-professional .field-group.radio-list .wpcf7-list-item {
  width: 100%;
  margin: 0;
}

#form-comunication .field-group.radio-list .wpcf7-list-item label,
#form-professional .field-group.radio-list .wpcf7-list-item label {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  margin: 0;
  cursor: pointer;
  font-size: 20px;
  font-weight: var(--mwm--font-weight-regular);
  line-height: 1.2;
  color: var(--mwm--color-white-50);
}

#form-comunication .field-group.radio-list .wpcf7-list-item label:has(input[type="radio"]:checked),
#form-professional .field-group.radio-list .wpcf7-list-item label:has(input[type="radio"]:checked) {
  color: var(--mwm--color-white);
}

#form-comunication .field-group.radio-list input[type="radio"],
#form-professional .field-group.radio-list input[type="radio"] {
  flex-shrink: 0;
  width: 12px;
  height: 12px;
  margin: 0;
  border-color: var(--mwm--color-white-50);
}

/* Listas checkbox (disciplinas, etc.) */
#form-comunication .field-group.checkbox-list,
#form-professional .field-group.checkbox-list {
  gap: 1.25rem;
}

#form-comunication .field-group.checkbox-list .wpcf7-form-control-wrap,
#form-professional .field-group.checkbox-list .wpcf7-form-control-wrap {
  width: 100%;
}

#form-comunication .field-group.checkbox-list .wpcf7-checkbox,
#form-professional .field-group.checkbox-list .wpcf7-checkbox {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.25rem;
  width: 100%;
}

#form-comunication .field-group.checkbox-list .wpcf7-list-item,
#form-professional .field-group.checkbox-list .wpcf7-list-item {
  width: 100%;
  margin: 0;
}

#form-comunication .field-group.checkbox-list .wpcf7-list-item label,
#form-professional .field-group.checkbox-list .wpcf7-list-item label {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  margin: 0;
  cursor: pointer;
  font-size: 20px;
  font-weight: var(--mwm--font-weight-regular);
  line-height: 1.2;
  color: var(--mwm--color-white-50);
}

#form-comunication .field-group.checkbox-list .wpcf7-list-item label:has(input[type="checkbox"]:checked),
#form-professional .field-group.checkbox-list .wpcf7-list-item label:has(input[type="checkbox"]:checked) {
  color: var(--mwm--color-white);
}

#form-comunication .field-group.checkbox-list .wpcf7-list-item input[type="checkbox"],
#form-professional .field-group.checkbox-list .wpcf7-list-item input[type="checkbox"] {
  flex-shrink: 0;
  width: 12px;
  height: 12px;
  margin: 0;
  border-color: var(--mwm--color-white-50);
  border-radius: 0;
}

/* Aceptación GDPR */
#form-comunication .acceptance-group,
#form-professional .acceptance-group {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 0.5rem;
  max-width: 100%;
  color: var(--mwm--color-white-50);
  font-size: 18px;
  font-weight: var(--mwm--font-weight-regular);
  line-height: 1.2;
  text-align: justify;
}

#form-comunication .acceptance-group input[type="checkbox"],
#form-professional .acceptance-group input[type="checkbox"] {
  flex-shrink: 0;
  width: 12px;
  height: 12px;
  margin: 0;
  border-color: var(--mwm--color-white-50);
  border-radius: 0;
}

#form-comunication .acceptance-group a,
#form-professional .acceptance-group a {
  color: var(--mwm--color-white-50);
  text-decoration: underline;
}

#form-comunication .acceptance-group a:hover,
#form-comunication .acceptance-group a:focus-visible,
#form-professional .acceptance-group a:hover,
#form-professional .acceptance-group a:focus-visible {
  opacity: 0.85;
}

/* Envío a la derecha */
#form-comunication .submit-group,
#form-professional .submit-group {
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  text-align: unset !important;
}

#form-comunication .submit-group .wpcf7-submit,
#form-comunication .submit-group input[type="submit"],
#form-professional .submit-group .wpcf7-submit,
#form-professional .submit-group input[type="submit"] {
  margin: 0;
}

/* ==========================================================
   07. Formulario de búsqueda
   ========================================================== */

.search-form form {
  position: relative;
}

.search-form input[type=search]::-webkit-search-decoration,
.search-form input[type=search]::-webkit-search-cancel-button,
.search-form input[type=search]::-webkit-search-results-button,
.search-form input[type=search]::-webkit-search-results-decoration {
  -webkit-appearance: none;
}

.search-form button {
  background: transparent;
  border: none;
  bottom: 0;
  color: #4c4c4c;
  display: inline-block;
  font-size: 1rem;
  min-width: unset;
  outline: none;
  padding: 0 1rem;
  position: absolute;
  right: 0;
  top: 0;
  width: auto;
}

/* ==========================================================
   08. Header
   (Estilos en assets/css/header.css — encolado en functions.php)
   ========================================================== */

/* ==========================================================
   09. Footer
   (Estilos en assets/css/footer.css — encolado en functions.php)
   ========================================================== */

/* ==========================================================
   10. Home video
   (Bloque figma-to-mwm/home-hero — estilos en el plugin)
   ========================================================== */

/* ==========================================================
   11. Componentes — tarjeta proyecto
   (Layout Figma Section_Var3 Proyectos)
   ========================================================== */

.mwm-card-project {
  width: 100%;
  height: 100%;
  display: block;
}

.mwm-card-project__link {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  isolation: isolate;
  overflow: hidden;
  width: 100%;
  height: 100%;
  min-height: 200px;
  padding-bottom: 21px;
  box-sizing: border-box;
  text-decoration: none;
  color: inherit;
}

.mwm-card-project__meta {
  position: relative;
  z-index: 2;
  flex-shrink: 0;
  align-self: flex-start;
  max-width: 199px;
  width: 100%;
  padding-right: 12px;
  margin-bottom: -21px;
  box-sizing: border-box;
  pointer-events: none;
}

.mwm-card-project__tag {
  padding: 4px 8px;
  background: var(--mwm--color-black);
  display: inline-flex;
  align-items: flex-start;
  gap: 8px;
  width: 100%;
  box-sizing: border-box;
}

.mwm-card-project__title {
  margin: 0;
  color: var(--mwm--color-white);
  font-size: var(--mwm--font-size-b200);
  font-family: var(--mwm--font-family);
  font-weight: var(--mwm--font-weight-regular);
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}

.mwm-card-project__media {
  position: relative;
  z-index: 1;
  flex: 1 1 0;
  align-self: stretch;
  min-height: 0;
  width: 100%;
  margin-bottom: -21px;
  background: var(--mwm--color-black);
}

.mwm-card-project__image {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.5;
  transition: opacity 0.2s ease;
}

.mwm-card-project:hover .mwm-card-project__image,
.mwm-card-project__link:hover .mwm-card-project__image,
.mwm-card-project__link:focus-visible .mwm-card-project__image {
  opacity: 1;
}

.mwm-card-project__icon {
  flex: 0 0 auto;
  display: inline-flex;
  color: var(--mwm--color-white);
  line-height: 0;
}

.mwm-card-project__icon svg {
  display: block;
}

/* ==========================================================
   12. Página 404
   (Layout Figma: columna 80px → fila 3×flex 64px)
   ========================================================== */

.mwm-404 {
  width: 100%;
  padding-top: var(--mwm--spacing-10);
  padding-bottom: var(--mwm--spacing-10);
  overflow: hidden;
}

@media (min-width: 768px) {
  .mwm-404 {
    padding-top: var(--mwm--spacing-04);
  }
}

.mwm-404__shell {
  width: 100%;
}

.mwm-404__page {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 5rem;
  width: 100%;
}

.mwm-404__hero {
  align-self: stretch;
}

.mwm-404__heading {
  margin: 0;
  flex: 1 1 0;
  font-family: var(--mwm--font-family);
  font-weight: var(--mwm--font-weight-regular);
  line-height: 1.2;
  color: var(--mwm--color-white);
}

.mwm-404__sup,
.mwm-404__heading-text {
  font-size: 1.75rem;
  line-height: 1.2;
  font-family: inherit;
  font-weight: inherit;
  color: inherit;
}

.mwm-404__sup {
  vertical-align: super;
}

.mwm-404__body {
  align-self: stretch;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 4rem;
  min-height: 28.75rem;
  width: 100%;
}

.mwm-404__col {
  flex: 1 1 0;
  min-width: 0;
}

.mwm-404__col--lead {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2rem;
}

.mwm-404__description {
  margin: 0;
  align-self: stretch;
  font-family: var(--mwm--font-family);
  font-size: 1.375rem;
  font-weight: var(--mwm--font-weight-regular);
  line-height: 1.2;
  color: var(--mwm--color-white);
  word-wrap: break-word;
}

.mwm-404__col--media {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2rem;
}

.mwm-404__cta-row {
  display: inline-flex;
  justify-content: center;
  align-items: flex-start;
  gap: 0.25rem;
}

.mwm-404__actions {
  margin: 0;
}

.mwm-404__cta {
  display: inline-flex;
  align-items: flex-start;
  gap: var(--mwm--spacing-01);
  font-family: var(--mwm--font-family);
  font-size: var(--mwm--font-size-b100);
  font-weight: var(--mwm--font-weight-regular);
  line-height: 1.2;
  color: var(--mwm--color-white);
  text-decoration: none;
  text-align: justify;
  word-wrap: break-word;
}

.mwm-404__cta:hover,
.mwm-404__cta:focus-visible {
  opacity: 0.75;
}

.mwm-404__cta-icon {
  display: inline-flex;
  flex-shrink: 0;
  width: 1.333125rem;
  height: 1rem;
  min-width: 1.333125rem;
  min-height: 1rem;
  color: var(--mwm--color-white);
}

.mwm-404__cta-icon svg {
  display: block;
  width: 100%;
  height: auto;
}

.mwm-404__col--rail {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2.5rem;
}

.mwm-404__rail-spacer {
  align-self: stretch;
  width: 100%;
  min-height: 14rem;
}

.mwm-404__col--media .mwm-video {
  align-self: stretch;
  width: 100%;
}

.mwm-404__col--media .mwm-video__shell {
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 1023px) {
  .mwm-404__page {
    gap: var(--mwm--spacing-04);
  }

  .mwm-404__body {
    flex-direction: column;
    flex-wrap: wrap;
    gap: var(--mwm--spacing-04);
    min-height: 0;
  }

  .mwm-404__col--rail {
    display: none;
  }
}
