/* Ajustes del tema hijo sobre Astra, Elementor, WooCommerce y CF7. El diseño vive en site.css (= maqueta/v3/v3.css). */

/* Contenido a todo el ancho: las secciones traen su propio margen (.wrap) */
.site-content > .ast-container { max-width: none; padding: 0; display: block; }
.e-con.pmp-sec { --padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0; --min-height: 0; --gap: 0; }
.pmp-sec > .elementor-widget, .pmp-sec .elementor-widget-container { width: 100%; }

/* Astra pinta títulos, citas y botones por elemento; aquí heredan como en la maqueta (las clases de site.css siguen mandando) */
h1, h2, h3, h4, h5, h6 { color: inherit; }
blockquote { border: 0; padding: 0; margin: 0; font-style: normal; color: inherit; }
.site-head .menu-btn { font: 600 1rem/1 var(--f); border-radius: var(--r); padding: 0 1.4em; }
.foot .legal button { background: none; box-shadow: none; border: 0; border-radius: 0; padding: 0; font: inherit; color: inherit; cursor: pointer; }
.finder select { border-radius: var(--r); }

/* ===== Contacto: formulario CF7 (id 3343) con el estilo de .form ===== */
.cf7 .wpcf7-form { display: grid; gap: 18px; }
.cf7 .wpcf7-form p { margin: 0; }
.cf7 .edubin-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width: 600px) { .cf7 .edubin-row { grid-template-columns: 1fr; } }
.cf7 .wpcf7-form-control-wrap { display: block; }
.cf7 input:not([type=submit]), .cf7 textarea { width: 100%; min-height: 48px; padding: 12px 14px; font: 400 1.0625rem var(--f); color: var(--ink); background: #fff; border: 1.5px solid var(--line); border-radius: var(--r); }
.cf7 input:hover, .cf7 textarea:hover { border-color: var(--muted); }
.cf7 input:focus, .cf7 textarea:focus { border-color: var(--navy); outline: 3px solid var(--red); outline-offset: 2px; }
.cf7 textarea { min-height: 150px; resize: vertical; }
.cf7 ::placeholder { color: var(--muted); opacity: 1; }
.cf7 input[type=submit] { justify-self: start; min-height: 52px; padding: 0 1.4em; font: 600 1rem/1 var(--f); background: var(--red); color: #fff; border: 0; border-radius: var(--r); cursor: pointer; }
.cf7 input[type=submit]:hover { background: var(--red-press); }
.cf7 .wpcf7-form > p[style] { font-size: .875rem !important; color: var(--muted); opacity: 1 !important; } /* aviso legal escrito en el formulario con estilo en línea */

/* ===== WooCommerce: marco común ===== */
body:not(.elementor-template-full-width) #primary { max-width: calc(var(--wrap) + 2 * var(--m)); margin: 0 auto; padding: clamp(32px, 4vw, 56px) var(--m) clamp(64px, 8vw, 112px); }
body:not(.elementor-template-full-width) .entry-header { margin-bottom: 32px; }
body:not(.elementor-template-full-width) .entry-title { font: 600 clamp(2rem, 1.4rem + 2vw, 3rem)/1.1 var(--f-head); color: var(--navy); }
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce .button.alt, .woocommerce button.button.alt, .woocommerce a.button.alt, #place_order {
  min-height: 52px; padding: 0 1.4em; display: inline-flex; align-items: center; justify-content: center;
  font: 600 1rem/1 var(--f); border-radius: var(--r); background: var(--red); color: #fff; border: 0; }
.woocommerce .button:hover, .woocommerce button.button.alt:hover, .woocommerce a.button:hover, #place_order:hover { background: var(--red-press); color: #fff; }
.woocommerce .button:disabled, .woocommerce .button.disabled { background: var(--red); opacity: .45; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select, .woocommerce-page select,
.woocommerce .select2-container .select2-selection--single {
  min-height: 48px; padding: 12px 14px; font: 400 1.0625rem var(--f); color: var(--ink); background: #fff; border: 1.5px solid var(--line); border-radius: var(--r); }
.woocommerce form .form-row label { font-weight: 600; color: var(--navy); }
.woocommerce-message, .woocommerce-info, .woocommerce-error { border-top-color: var(--red); background: var(--soft); color: var(--ink); border-radius: var(--r); }

/* ===== Ficha de plan: div.product toma la grilla de .product de la maqueta (foto | texto) ===== */
.single-product .woocommerce-breadcrumb, .single-product div.product .product_meta, .single-product div.product .woocommerce-tabs, .single-product div.product .related, .single-product div.product .single-product-category, .single-product .ast-woo-product-category { display: none; }
.single-product div.product .woocommerce-product-gallery, .single-product div.product .summary { width: 100% !important; float: none; margin: 0; }
.single-product div.product .woocommerce-product-gallery img { aspect-ratio: 4 / 4.4; object-fit: cover; border-radius: var(--r-card); }
.single-product div.product .summary { position: static; background: none; padding: 0; border-radius: 0; } /* .summary de la maqueta es la caja del carro */
.single-product .product_title { font: 600 clamp(2.375rem, 1.5rem + 3.2vw, 4rem)/1.04 var(--f-head); letter-spacing: -.03em; color: var(--navy); margin: 0 0 12px; }
.single-product div.product p.price, .single-product div.product span.price { font: 600 2.5rem/1 var(--f-head); color: var(--navy); letter-spacing: -.03em; margin: 24px 0; padding: 20px 0; border-block: 1px solid var(--line); }
.single-product .woocommerce-product-details__short-description { font-size: 1.125rem; line-height: 1.6; color: var(--muted); }
.single-product .woocommerce-product-details__short-description p { margin-bottom: 1em; }
.single-product form.cart { margin: 28px 0 0; padding: 0; border: 0; }
.single-product form.cart .variations { margin-bottom: 16px; border: 0; }
.single-product form.cart .variations th, .single-product form.cart .variations td { display: block; padding: 0; border: 0; text-align: left; }
.single-product form.cart .variations label { font-weight: 600; color: var(--navy); }
.single-product form.cart .variations select { width: 100%; max-width: 420px; }
.single-product form.cart .quantity { display: none; }
.single-product .woocommerce-variation-add-to-cart, .single-product form.cart:not(.variations_form) { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.single-product .reset_variations { margin-left: 12px; }
.single-product .related.products, .single-product .up-sells { display: none !important; } /* fuera de div.product en Astra */
.single-product .single_variation_wrap { margin: 0; }

/* ===== Carro, pago y Mi cuenta ===== */
.woocommerce table.shop_table { border: 1px solid var(--line); border-radius: var(--r-card); border-collapse: separate; overflow: hidden; }
.woocommerce table.shop_table th { font-size: .875rem; color: var(--muted); font-weight: 600; }
.woocommerce table.shop_table td { border-top: 1px solid var(--line); padding-block: 18px; }
.woocommerce .cart_totals h2, #order_review_heading, .woocommerce-billing-fields h3, .woocommerce-additional-fields h3, .woocommerce-account h2 {
  font: 600 1.625rem/1.15 var(--f-head); color: var(--navy); }
.woocommerce .order-total .amount { font: 600 1.75rem/1 var(--f-head); color: var(--navy); }
.woocommerce form.login, .woocommerce form.register { border: 1px solid var(--line); border-radius: var(--r-card); padding: clamp(24px, 3vw, 40px); }
.woocommerce-account .u-columns { gap: 24px; }
#add_payment_method #payment, .woocommerce-checkout #payment { background: var(--soft); border-radius: var(--r-card); }

/* Páginas de texto (privacidad, términos): tablas anchas se desplazan dentro de sí mismas en móvil */
.entry-content table { display: block; max-width: 100%; overflow-x: auto; }
.woocommerce .entry-content table.shop_table { display: table; }
