/*
Theme Name: Amor de Verano
Theme URI: https://amordeverano.es
Description: Tema a medida para Amor de Verano — tienda de regalos artesanales para bodas, bautizos y comuniones. Integrado con WooCommerce, conservando el diseño original pixel a pixel.
Author: Amor de Verano
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
WC requires at least: 7.0
WC tested up to: 9.0
Text Domain: amordeverano
*/

/* ============================================================
   El CSS original del diseño va íntegro debajo, sin tocar.
   ============================================================ */

    /* ─── Reset & base ─────────────────────────────────────────── */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    :root {
      --black:   #0a0a0a;
      --white:   #ffffff;
      --gray-50: #f9f9f9;
      --gray-100:#f0f0f0;
      --gray-300:#c4c4c4;
      --gray-500:#888888;
      --gray-700:#444444;
      --serif:   'Cormorant Garamond', Georgia, serif;
      --sans:    'Inter', system-ui, sans-serif;
    }

    html { scroll-behavior: smooth; }

    body {
      font-family: var(--sans);
      background: var(--white);
      color: var(--black);
      font-size: 15px;
      line-height: 1.6;
      overflow-x: hidden;
    }

    img { display: block; max-width: 100%; }
    a   { color: inherit; text-decoration: none; }

    /* ─── Scrollbar ─────────────────────────────────────────────── */
    ::-webkit-scrollbar { width: 4px; }
    ::-webkit-scrollbar-track { background: var(--white); }
    ::-webkit-scrollbar-thumb { background: var(--black); border-radius: 2px; }

    /* ─── Nav ───────────────────────────────────────────────────── */
    .nav {
      position: fixed;
      top: 0; left: 0; right: 0;
      z-index: 100;
      display: grid;
      grid-template-columns: minmax(180px, 1fr) auto minmax(180px, 1fr);
      column-gap: 32px;
      align-items: center;
      padding: 0 32px;
      height: 72px;
      background: rgba(255,255,255,0.92);
      backdrop-filter: blur(12px);
      border-bottom: 1px solid transparent;
      transition: border-color .3s;
    }
    .nav.scrolled { border-color: var(--gray-100); }

    .nav-logo {
      font-family: var(--serif);
      font-size: 22px;
      font-weight: 400;
      letter-spacing: .06em;
      white-space: nowrap;
    }
    .nav-logo span { font-style: italic; }

    /* SUSTITUYE ESTE BLOQUE POR TU LOGO:
       <img src="logo.svg" alt="Amor de Verano" style="height:36px" />  */

    .nav-links {
      display: flex;
      gap: 28px;
      list-style: none;
    }

    /* ─── Dropdown ──────────────────────────────────────── */
    .nav-item { position: relative; }

    .nav-dropdown {
      position: absolute;
      top: 100%;
      left: 50%;
      transform: translateX(-50%);
      background: var(--white);
      border: 1px solid var(--gray-100);
      min-width: 220px;
      padding: 16px 0 8px;
      opacity: 0;
      pointer-events: none;
      transition: opacity .22s, transform .22s;
      z-index: 200;
      box-shadow: 0 8px 32px rgba(0,0,0,.07);
    }
    .nav-dropdown::before {
      content: '';
      position: absolute;
      top: 6px; left: 50%;
      transform: translateX(-50%);
      width: 10px; height: 10px;
      background: var(--white);
      border-left: 1px solid var(--gray-100);
      border-top: 1px solid var(--gray-100);
      rotate: 45deg;
    }

    .nav-item:hover .nav-dropdown {
      opacity: 1;
      pointer-events: all;
    }

    .nav-dropdown a {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 11px 20px;
      font-size: 12px;
      letter-spacing: .08em;
      text-transform: none;
      color: var(--gray-700);
      transition: background .15s, color .15s;
      white-space: nowrap;
    }
    .nav-dropdown a:hover {
      background: var(--gray-50);
      color: var(--black);
    }
    .nav-dropdown a:hover::after { display: none; }
    .nav-dropdown-icon { font-size: 11px; opacity: .35; letter-spacing: 0; }
    .nav-dropdown-divider {
      height: 1px;
      background: var(--gray-100);
      margin: 6px 0;
    }
    .nav-links a {
      font-size: 11px;
      font-weight: 400;
      letter-spacing: .10em;
      text-transform: uppercase;
      color: var(--gray-700);
      position: relative;
      padding-bottom: 2px;
      transition: color .2s;
    }
    .nav-links a::after {
      content: '';
      position: absolute;
      bottom: 0; left: 0;
      width: 0; height: 1px;
      background: var(--black);
      transition: width .25s;
    }
    .nav-links a:hover { color: var(--black); }
    .nav-links a:hover::after { width: 100%; }

    .nav-right {
      display: flex;
      align-items: center;
      gap: 20px;
      justify-content: flex-end;
      border-left: 1px solid var(--gray-100);
      padding-left: 32px;
      margin-left: 8px;
    }

    .nav-cart {
      position: relative;
      cursor: pointer;
      background: none;
      border: none;
      padding: 4px;
      margin-left: 0;
      display: flex;
      align-items: center;
      gap: 6px;
      font-size: 12px;
      letter-spacing: .1em;
      text-transform: uppercase;
      color: var(--gray-700);
      transition: color .2s;
    }
    .nav-cart:hover { color: var(--black); }
    .cart-count {
      background: var(--black);
      color: var(--white);
      font-size: 10px;
      width: 18px; height: 18px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-weight: 500;
    }

    .nav-cta {
      font-size: 11px;
      letter-spacing: .14em;
      text-transform: uppercase;
      background: var(--black);
      color: var(--white);
      padding: 10px 22px;
      border: 1px solid var(--black);
      transition: background .2s, color .2s;
      cursor: pointer;
    }
    .nav-cta:hover { background: var(--white); color: var(--black); }

    /* ─── Cart drawer ──────────────────────────────────────────── */
    .cart-overlay {
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,.4);
      z-index: 300;
      opacity: 0;
      pointer-events: none;
      transition: opacity .3s;
    }
    .cart-overlay.open { opacity: 1; pointer-events: all; }

    .cart-drawer {
      position: fixed;
      top: 0; right: 0; bottom: 0;
      width: 400px;
      max-width: 95vw;
      background: var(--white);
      z-index: 301;
      transform: translateX(100%);
      transition: transform .35s cubic-bezier(.4,0,.2,1);
      display: flex;
      flex-direction: column;
    }
    .cart-drawer.open { transform: translateX(0); }

    .cart-header {
      padding: 28px 32px;
      border-bottom: 1px solid var(--gray-100);
      display: flex;
      align-items: center;
      justify-content: space-between;
    }
    .cart-header h3 {
      font-family: var(--serif);
      font-size: 22px;
      font-weight: 400;
    }
    .cart-close {
      background: none; border: none; font-size: 22px;
      cursor: pointer; color: var(--gray-300);
      transition: color .2s; line-height: 1;
    }
    .cart-close:hover { color: var(--black); }

    .cart-items {
      flex: 1;
      overflow-y: auto;
      padding: 24px 32px;
    }

    .cart-empty {
      text-align: center;
      padding: 60px 0;
      color: var(--gray-300);
      font-size: 13px;
    }
    .cart-empty p:first-child {
      font-family: var(--serif);
      font-size: 22px;
      color: var(--gray-500);
      margin-bottom: 8px;
    }

    .cart-item {
      display: grid;
      grid-template-columns: 72px 1fr auto;
      gap: 16px;
      align-items: center;
      padding: 16px 0;
      border-bottom: 1px solid var(--gray-100);
    }
    .cart-item-img {
      width: 72px; height: 72px;
      background: var(--gray-100);
      display: flex; align-items: center; justify-content: center;
      font-size: 24px;
    }
    .cart-item-name { font-size: 13px; font-weight: 500; margin-bottom: 4px; }
    .cart-item-price { font-size: 13px; color: var(--gray-500); }
    .cart-item-qty {
      display: flex; align-items: center; gap: 10px;
      margin-top: 8px;
    }
    .qty-btn {
      width: 24px; height: 24px;
      border: 1px solid var(--gray-300);
      background: none; cursor: pointer;
      font-size: 14px; line-height: 1;
      transition: border-color .2s;
      display: flex; align-items: center; justify-content: center;
    }
    .qty-btn:hover { border-color: var(--black); }
    .qty-num { font-size: 13px; min-width: 16px; text-align: center; }
    .cart-item-remove {
      background: none; border: none; cursor: pointer;
      color: var(--gray-300); font-size: 18px; line-height: 1;
      transition: color .2s; align-self: start;
    }
    .cart-item-remove:hover { color: var(--black); }

    .cart-footer {
      padding: 24px 32px;
      border-top: 1px solid var(--gray-100);
    }
    .cart-total {
      display: flex;
      justify-content: space-between;
      font-size: 14px;
      margin-bottom: 6px;
    }
    .cart-total-label { color: var(--gray-500); }
    .cart-total-price { font-weight: 500; }
    .cart-total-big {
      display: flex;
      justify-content: space-between;
      align-items: baseline;
      margin-bottom: 20px;
    }
    .cart-total-big span:first-child { font-size: 13px; letter-spacing: .1em; text-transform: uppercase; }
    .cart-total-big span:last-child {
      font-family: var(--serif);
      font-size: 28px;
    }
    .cart-checkout {
      width: 100%;
      background: var(--black);
      color: var(--white);
      border: none;
      padding: 16px;
      font-size: 11px;
      letter-spacing: .16em;
      text-transform: uppercase;
      cursor: pointer;
      font-family: var(--sans);
      transition: background .2s;
      margin-bottom: 10px;
    }
    .cart-checkout:hover { background: var(--gray-700); }
    .cart-continue {
      width: 100%;
      background: none;
      border: 1px solid var(--gray-300);
      padding: 14px;
      font-size: 11px;
      letter-spacing: .14em;
      text-transform: uppercase;
      cursor: pointer;
      font-family: var(--sans);
      transition: border-color .2s;
    }
    .cart-continue:hover { border-color: var(--black); }

    /* Mobile burger */
    .burger {
      display: none;
      flex-direction: column;
      gap: 5px;
      cursor: pointer;
      padding: 4px;
      background: none;
      border: none;
    }
    .burger span {
      display: block;
      width: 22px; height: 1px;
      background: var(--black);
      transition: transform .3s, opacity .3s;
    }

    /* ─── Hero ──────────────────────────────────────────────────── */
    .hero {
      height: 100vh;
      min-height: 600px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      position: relative;
      background: var(--white);
      padding: 0 24px;
    }

    /* Imagen de fondo opcional — descomenta y pon tu ruta:
    .hero {
      background: linear-gradient(rgba(0,0,0,.35), rgba(0,0,0,.35)),
                  url('hero.jpg') center/cover no-repeat;
      color: var(--white);
    } */

    .hero-eyebrow {
      font-size: 11px;
      letter-spacing: .22em;
      text-transform: uppercase;
      color: var(--gray-500);
      margin-bottom: 28px;
    }

    .hero-title {
      font-family: var(--serif);
      font-size: clamp(52px, 8vw, 110px);
      font-weight: 300;
      line-height: 1.05;
      letter-spacing: -.01em;
      margin-bottom: 28px;
    }
    .hero-title em { font-style: italic; }

    .hero-sub {
      font-size: 14px;
      color: var(--gray-500);
      max-width: 380px;
      line-height: 1.8;
      margin-bottom: 44px;
    }

    .hero-actions {
      display: flex;
      gap: 16px;
      flex-wrap: wrap;
      justify-content: center;
    }

    .btn-primary {
      font-size: 11px;
      letter-spacing: .14em;
      text-transform: uppercase;
      background: var(--black);
      color: var(--white);
      padding: 14px 32px;
      border: 1px solid var(--black);
      cursor: pointer;
      transition: background .2s, color .2s;
      display: inline-block;
    }
    .btn-primary:hover { background: var(--white); color: var(--black); }

    .btn-ghost {
      font-size: 11px;
      letter-spacing: .14em;
      text-transform: uppercase;
      background: transparent;
      color: var(--black);
      padding: 14px 32px;
      border: 1px solid var(--gray-300);
      cursor: pointer;
      transition: border-color .2s, color .2s;
      display: inline-block;
    }
    .btn-ghost:hover { border-color: var(--black); }

    .hero-scroll {
      position: absolute;
      bottom: 36px;
      left: 50%;
      transform: translateX(-50%);
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 8px;
      color: var(--gray-300);
      font-size: 10px;
      letter-spacing: .18em;
      text-transform: uppercase;
    }
    .hero-scroll::after {
      content: '';
      width: 1px;
      height: 36px;
      background: var(--gray-300);
      animation: scrollLine 1.8s ease-in-out infinite;
    }
    @keyframes scrollLine {
      0%   { transform: scaleY(0); transform-origin: top; }
      50%  { transform: scaleY(1); transform-origin: top; }
      50.01% { transform: scaleY(1); transform-origin: bottom; }
      100% { transform: scaleY(0); transform-origin: bottom; }
    }

    /* ─── Section wrapper ───────────────────────────────────────── */
    section { padding: 100px 48px; }

    .section-label {
      font-size: 10px;
      letter-spacing: .22em;
      text-transform: uppercase;
      color: var(--gray-300);
      margin-bottom: 16px;
    }

    .section-title {
      font-family: var(--serif);
      font-size: clamp(36px, 4vw, 56px);
      font-weight: 300;
      line-height: 1.1;
      margin-bottom: 16px;
    }
    .section-title em { font-style: italic; }

    .section-desc {
      color: var(--gray-500);
      max-width: 500px;
      line-height: 1.8;
      margin-bottom: 56px;
    }

    /* ─── Services grid ─────────────────────────────────────────── */
    #servicios { background: var(--white); }

    .services-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 1px;
      background: var(--gray-100);
      border: 1px solid var(--gray-100);
    }

    .service-card {
      background: var(--white);
      padding: 48px 36px 40px;
      transition: background .25s;
      cursor: pointer;
      position: relative;
      overflow: hidden;
    }
    .service-card:hover { background: var(--black); color: var(--white); }

    .service-card-num {
      font-size: 11px;
      letter-spacing: .14em;
      color: var(--gray-300);
      margin-bottom: 32px;
      transition: color .25s;
    }
    .service-card:hover .service-card-num { color: rgba(255,255,255,.35); }

    .service-card-icon {
      font-size: 28px;
      margin-bottom: 24px;
      display: block;
    }

    .service-card-title {
      font-family: var(--serif);
      font-size: 26px;
      font-weight: 400;
      margin-bottom: 12px;
    }

    .service-card-text {
      font-size: 13px;
      color: var(--gray-500);
      line-height: 1.7;
      transition: color .25s;
    }
    .service-card:hover .service-card-text { color: rgba(255,255,255,.65); }

    .service-card-link {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      margin-top: 28px;
      font-size: 11px;
      letter-spacing: .14em;
      text-transform: uppercase;
      border-bottom: 1px solid var(--gray-300);
      padding-bottom: 2px;
      transition: border-color .25s, gap .2s;
    }
    .service-card:hover .service-card-link {
      border-color: rgba(255,255,255,.4);
    }
    .service-card-link:hover { gap: 14px; }

    /* ─── Bodas ─────────────────────────────────────────────────── */
    #bodas {
      background: var(--gray-50);
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 80px;
      align-items: center;
    }

    .section-image-wrap {
      position: relative;
      aspect-ratio: 3/4;
      overflow: hidden;
    }
    .section-image-wrap img,
    .section-image-placeholder {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    .section-image-placeholder {
      background: var(--gray-100);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 11px;
      letter-spacing: .14em;
      text-transform: uppercase;
      color: var(--gray-300);
    }

    .section-image-wrap::before {
      content: '';
      position: absolute;
      inset: 0;
      border: 1px solid var(--gray-100);
      z-index: 1;
      pointer-events: none;
    }

    .section-tag {
      display: inline-block;
      font-size: 10px;
      letter-spacing: .18em;
      text-transform: uppercase;
      border: 1px solid var(--gray-300);
      padding: 6px 14px;
      margin-bottom: 12px;
    }

    /* ─── Bautizos + Comuniones: side-by-side ───────────────────── */
    #bautizos-comuniones {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 1px;
      background: var(--gray-100);
      padding: 0;
    }
    .half-section {
      padding: 80px 48px;
      background: var(--white);
    }

    /* ─── Tienda / Regalos ──────────────────────────────────────── */
    #regalos { background: var(--white); color: var(--black); }

    .shop-filter {
      display: flex;
      gap: 8px;
      flex-wrap: wrap;
      margin-bottom: 48px;
    }
    .filter-btn {
      font-size: 11px;
      letter-spacing: .14em;
      text-transform: uppercase;
      padding: 8px 20px;
      border: 1px solid var(--gray-300);
      background: none;
      cursor: pointer;
      font-family: var(--sans);
      transition: background .2s, border-color .2s, color .2s;
    }
    .filter-btn:hover,
    .filter-btn.active { background: var(--black); color: var(--white); border-color: var(--black); }

    .products-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 32px 24px;
    }

    .product-card { cursor: pointer; }

    .product-img {
      position: relative;
      aspect-ratio: 3/4;
      background: var(--gray-50);
      overflow: hidden;
      margin-bottom: 16px;
    }
    .product-img-inner {
      width: 100%; height: 100%;
      display: flex; align-items: center; justify-content: center;
      font-size: 40px;
      transition: transform .4s;
    }
    .product-card:hover .product-img-inner { transform: scale(1.06); }

    .product-badge {
      position: absolute;
      top: 12px; left: 12px;
      font-size: 9px;
      letter-spacing: .14em;
      text-transform: uppercase;
      background: var(--black);
      color: var(--white);
      padding: 5px 10px;
    }

    .product-actions {
      position: absolute;
      bottom: 0; left: 0; right: 0;
      background: rgba(10,10,10,.92);
      color: var(--white);
      padding: 14px 16px;
      display: flex;
      flex-direction: column;
      gap: 10px;
      transform: translateY(100%);
      transition: transform .25s;
    }
    .product-card:hover .product-actions { transform: translateY(0); }

    .product-qty-row {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 0;
    }
    .product-qty-btn {
      width: 32px; height: 32px;
      background: rgba(255,255,255,.12);
      border: 1px solid rgba(255,255,255,.2);
      color: var(--white);
      font-size: 16px;
      cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      transition: background .15s;
      line-height: 1;
      font-family: var(--sans);
    }
    .product-qty-btn:hover { background: rgba(255,255,255,.25); }
    .product-qty-num {
      width: 44px; height: 32px;
      background: rgba(255,255,255,.08);
      border-top: 1px solid rgba(255,255,255,.2);
      border-bottom: 1px solid rgba(255,255,255,.2);
      border-left: none; border-right: none;
      color: var(--white);
      font-size: 13px;
      text-align: center;
      font-family: var(--sans);
      -moz-appearance: textfield;
    }
    .product-qty-num::-webkit-inner-spin-button,
    .product-qty-num::-webkit-outer-spin-button { -webkit-appearance: none; }

    .product-quick-add {
      background: var(--white);
      color: var(--black);
      border: none;
      padding: 9px;
      font-size: 10px;
      letter-spacing: .14em;
      text-transform: uppercase;
      cursor: pointer;
      font-family: var(--sans);
      width: 100%;
      transition: background .2s;
    }
    .product-quick-add:hover { background: var(--gray-100); }

    .product-cat {
      font-size: 10px;
      letter-spacing: .16em;
      text-transform: uppercase;
      color: var(--gray-300);
      margin-bottom: 6px;
    }
    .product-name {
      font-family: var(--serif);
      font-size: 17px;
      font-weight: 400;
      margin-bottom: 8px;
      line-height: 1.3;
    }
    .product-price-row {
      display: flex;
      align-items: center;
      gap: 10px;
    }
    .product-price {
      font-size: 14px;
      font-weight: 500;
    }
    .product-price-old {
      font-size: 12px;
      color: var(--gray-300);
      text-decoration: line-through;
    }

    /* Added-to-cart toast */
    .cart-toast {
      position: fixed;
      bottom: 32px;
      left: 50%;
      transform: translateX(-50%) translateY(80px);
      background: var(--black);
      color: var(--white);
      padding: 14px 28px;
      font-size: 12px;
      letter-spacing: .1em;
      text-transform: uppercase;
      z-index: 400;
      opacity: 0;
      transition: transform .3s, opacity .3s;
      white-space: nowrap;
    }
    .cart-toast.show {
      transform: translateX(-50%) translateY(0);
      opacity: 1;
    }

    /* ─── Bodas categorías ──────────────────────────────────────── */
    #bodas { background: var(--gray-50); }

    .bodas-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1px;
      background: var(--gray-100);
      border: 1px solid var(--gray-100);
    }

    .boda-cat {
      background: var(--white);
      display: flex;
      flex-direction: column;
      transition: background .25s;
      overflow: hidden;
    }
    .boda-cat:hover { background: var(--black); color: var(--white); }

    .boda-cat-img {
      aspect-ratio: 4/3;
      background: var(--gray-50);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 48px;
      transition: background .25s;
      /* sustituir por: background: url('img.jpg') center/cover */
    }
    .boda-cat:hover .boda-cat-img { background: rgba(255,255,255,.06); }

    .boda-cat-body { padding: 28px 32px 32px; flex: 1; display: flex; flex-direction: column; }

    .boda-cat-title {
      font-family: var(--serif);
      font-size: 22px;
      font-weight: 400;
      margin-bottom: 8px;
    }
    .boda-cat-text {
      font-size: 13px;
      color: var(--gray-500);
      line-height: 1.7;
      flex: 1;
      transition: color .25s;
    }
    .boda-cat:hover .boda-cat-text { color: rgba(255,255,255,.6); }

    .boda-cat-link {
      display: inline-block;
      margin-top: 20px;
      font-size: 11px;
      letter-spacing: .14em;
      text-transform: uppercase;
      border-bottom: 1px solid var(--gray-300);
      padding-bottom: 2px;
      transition: border-color .25s, letter-spacing .2s;
    }
    .boda-cat:hover .boda-cat-link { border-color: rgba(255,255,255,.35); }

    @media (max-width: 1024px) { .bodas-grid { grid-template-columns: repeat(2, 1fr); } }
    @media (max-width: 768px)  { .bodas-grid { grid-template-columns: 1fr; } }

    /* ─── Tarjeta Bodas con foto ────────────────────────────────── */
    .service-card--bodas {
      background: url('img/bodas-hero.jpg?v=2') center/cover no-repeat;
      color: var(--white);
      position: relative;
    }
    .service-card--bodas::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(160deg, rgba(0,0,0,.45) 0%, rgba(0,0,0,.25) 100%);
      pointer-events: none;
    }
    .service-card--bodas > * { position: relative; z-index: 1; }
    .service-card--bodas .service-card-num  { color: rgba(255,255,255,.4); }
    .service-card--bodas .service-card-text { color: rgba(255,255,255,.75); }
    .service-card--bodas .service-card-link { border-color: rgba(255,255,255,.4); }
    .service-card--bodas:hover { background: url('img/bodas-hero.jpg?v=2') center/cover no-repeat; color: var(--white); }
    .service-card--bodas:hover::after { background: linear-gradient(160deg, rgba(0,0,0,.6) 0%, rgba(0,0,0,.4) 100%); }
    .service-card--bodas:hover .service-card-text { color: rgba(255,255,255,.85); }

    .service-card--bautizos {
      background: url('img/bautizos-hero.jpg') center/cover no-repeat;
      color: var(--white);
      position: relative;
    }
    .service-card--bautizos::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(160deg, rgba(0,0,0,.45) 0%, rgba(0,0,0,.25) 100%);
      pointer-events: none;
    }
    .service-card--bautizos > * { position: relative; z-index: 1; }
    .service-card--bautizos .service-card-num  { color: rgba(255,255,255,.4); }
    .service-card--bautizos .service-card-text { color: rgba(255,255,255,.75); }
    .service-card--bautizos .service-card-link { border-color: rgba(255,255,255,.4); }
    .service-card--bautizos:hover { background: url('img/bautizos-hero.jpg') center/cover no-repeat; color: var(--white); }
    .service-card--bautizos:hover::after { background: linear-gradient(160deg, rgba(0,0,0,.6) 0%, rgba(0,0,0,.4) 100%); }
    .service-card--bautizos:hover .service-card-text { color: rgba(255,255,255,.85); }

    .service-card--comuniones {
      background: url('img/comuniones-hero.jpg') center top/cover no-repeat;
      color: var(--white); position: relative;
    }
    .service-card--comuniones::after {
      content: ''; position: absolute; inset: 0;
      background: linear-gradient(160deg, rgba(0,0,0,.45) 0%, rgba(0,0,0,.25) 100%);
      pointer-events: none;
    }
    .service-card--comuniones > * { position: relative; z-index: 1; }
    .service-card--comuniones .service-card-num  { color: rgba(255,255,255,.4); }
    .service-card--comuniones .service-card-text { color: rgba(255,255,255,.75); }
    .service-card--comuniones .service-card-link { border-color: rgba(255,255,255,.4); }
    .service-card--comuniones:hover { background: url('img/comuniones-hero.jpg') center top/cover no-repeat; color: var(--white); }
    .service-card--comuniones:hover::after { background: linear-gradient(160deg, rgba(0,0,0,.6) 0%, rgba(0,0,0,.4) 100%); }
    .service-card--comuniones:hover .service-card-text { color: rgba(255,255,255,.85); }

    /* ─── Blog ──────────────────────────────────────────────────── */
    #blog { background: var(--white); }

    .blog-header {
      display: flex;
      align-items: flex-end;
      justify-content: space-between;
      margin-bottom: 56px;
    }
    .blog-header-text {}
    .blog-all {
      font-size: 11px;
      letter-spacing: .14em;
      text-transform: uppercase;
      border-bottom: 1px solid var(--gray-300);
      padding-bottom: 2px;
      white-space: nowrap;
      transition: border-color .2s;
    }
    .blog-all:hover { border-color: var(--black); }

    .blog-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 40px;
    }

    .blog-card {}

    .blog-card-image {
      aspect-ratio: 4/3;
      overflow: hidden;
      margin-bottom: 24px;
      background: var(--gray-100);
    }
    .blog-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
    .blog-card:hover .blog-card-image img { transform: scale(1.03); }

    .blog-card-img-placeholder {
      width: 100%;
      height: 100%;
      background: var(--gray-100);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 10px;
      letter-spacing: .14em;
      text-transform: uppercase;
      color: var(--gray-300);
    }

    .blog-card-meta {
      display: flex;
      gap: 16px;
      font-size: 11px;
      color: var(--gray-300);
      letter-spacing: .08em;
      margin-bottom: 12px;
    }
    .blog-card-cat {
      text-transform: uppercase;
      letter-spacing: .14em;
      color: var(--gray-500);
    }

    .blog-card-title {
      font-family: var(--serif);
      font-size: 22px;
      font-weight: 400;
      line-height: 1.3;
      margin-bottom: 10px;
    }
    .blog-card-title a:hover { text-decoration: underline; text-underline-offset: 3px; }

    .blog-card-excerpt {
      font-size: 13px;
      color: var(--gray-500);
      line-height: 1.7;
    }

    /* Featured post */
    .blog-card.featured {
      grid-column: 1 / -1;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 48px;
      align-items: center;
      padding-bottom: 40px;
      border-bottom: 1px solid var(--gray-100);
      margin-bottom: 16px;
    }
    .blog-card.featured .blog-card-image { aspect-ratio: 16/9; margin-bottom: 0; }
    .blog-card.featured .blog-card-title { font-size: 34px; }

    /* ─── Newsletter ─────────────────────────────────────────────── */
    #newsletter {
      background: var(--black);
      color: var(--white);
      text-align: center;
      padding: 100px 48px;
    }
    #newsletter .section-label { color: rgba(255,255,255,.25); }

    .nl-title {
      font-family: var(--serif);
      font-size: clamp(36px, 4vw, 60px);
      font-weight: 300;
      line-height: 1.1;
      margin-bottom: 16px;
    }
    .nl-title em { font-style: italic; }

    .nl-sub {
      color: rgba(255,255,255,.5);
      font-size: 14px;
      line-height: 1.8;
      max-width: 460px;
      margin: 0 auto 12px;
    }

    .nl-cadence {
      font-size: 11px;
      letter-spacing: .16em;
      text-transform: uppercase;
      color: rgba(255,255,255,.25);
      margin-bottom: 48px;
    }

    .nl-form {
      display: flex;
      max-width: 440px;
      margin: 0 auto;
      border: 1px solid rgba(255,255,255,.2);
    }

    .nl-input {
      flex: 1;
      background: transparent;
      border: none;
      outline: none;
      padding: 16px 20px;
      font-size: 13px;
      color: var(--white);
      font-family: var(--sans);
    }
    .nl-input::placeholder { color: rgba(255,255,255,.3); }

    .nl-btn {
      background: var(--white);
      color: var(--black);
      border: none;
      padding: 16px 24px;
      font-size: 11px;
      letter-spacing: .14em;
      text-transform: uppercase;
      cursor: pointer;
      font-family: var(--sans);
      white-space: nowrap;
      transition: background .2s, color .2s;
    }
    .nl-btn:hover { background: var(--gray-100); }

    .nl-privacy {
      font-size: 11px;
      color: rgba(255,255,255,.2);
      margin-top: 16px;
    }

    .nl-success {
      display: none;
      font-family: var(--serif);
      font-size: 20px;
      font-style: italic;
      color: rgba(255,255,255,.7);
      margin-top: 24px;
    }

    /* ─── Footer ────────────────────────────────────────────────── */
    footer {
      border-top: 1px solid var(--gray-100);
      padding: 48px;
      display: grid;
      grid-template-columns: 1.5fr 1fr 1fr 1fr;
      gap: 40px;
    }

    .footer-brand .nav-logo { font-size: 20px; margin-bottom: 12px; }
    .footer-brand p { font-size: 12px; color: var(--gray-500); line-height: 1.7; max-width: 220px; }

    .footer-col-title {
      font-size: 10px;
      letter-spacing: .2em;
      text-transform: uppercase;
      margin-bottom: 20px;
      color: var(--gray-500);
    }

    .footer-links { list-style: none; }
    .footer-links li + li { margin-top: 10px; }
    .footer-links a { font-size: 13px; color: var(--gray-700); transition: color .2s; }
    .footer-links a:hover { color: var(--black); }

    .footer-bottom {
      padding: 24px 48px;
      border-top: 1px solid var(--gray-100);
      display: flex;
      align-items: center;
      justify-content: space-between;
      font-size: 11px;
      color: var(--gray-300);
    }
    .footer-social { display: flex; gap: 20px; }
    .footer-social a { color: var(--gray-300); transition: color .2s; }
    .footer-social a:hover { color: var(--black); }

    /* ─── Banner popup ──────────────────────────────────────────── */
    .banner-overlay {
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,.55);
      z-index: 200;
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      pointer-events: none;
      transition: opacity .35s;
      padding: 24px;
    }
    .banner-overlay.visible {
      opacity: 1;
      pointer-events: all;
    }

    .banner-box {
      background: var(--white);
      max-width: 540px;
      width: 100%;
      padding: 56px 48px;
      text-align: center;
      position: relative;
      transform: translateY(20px);
      transition: transform .35s;
    }
    .banner-overlay.visible .banner-box { transform: translateY(0); }

    .banner-close {
      position: absolute;
      top: 16px; right: 20px;
      font-size: 20px;
      background: none;
      border: none;
      cursor: pointer;
      color: var(--gray-300);
      transition: color .2s;
      line-height: 1;
    }
    .banner-close:hover { color: var(--black); }

    .banner-tag {
      font-size: 10px;
      letter-spacing: .2em;
      text-transform: uppercase;
      color: var(--gray-300);
      margin-bottom: 20px;
    }

    .banner-title {
      font-family: var(--serif);
      font-size: 36px;
      font-weight: 300;
      line-height: 1.15;
      margin-bottom: 14px;
    }
    .banner-title em { font-style: italic; }

    .banner-text {
      font-size: 14px;
      color: var(--gray-500);
      line-height: 1.7;
      margin-bottom: 32px;
    }

    .banner-form { display: flex; gap: 0; }
    .banner-input {
      flex: 1;
      border: 1px solid var(--gray-300);
      border-right: none;
      outline: none;
      padding: 13px 16px;
      font-size: 13px;
      font-family: var(--sans);
      background: var(--white);
    }
    .banner-btn {
      background: var(--black);
      color: var(--white);
      border: 1px solid var(--black);
      padding: 13px 22px;
      font-size: 11px;
      letter-spacing: .12em;
      text-transform: uppercase;
      cursor: pointer;
      font-family: var(--sans);
      transition: background .2s, color .2s;
    }
    .banner-btn:hover { background: var(--white); color: var(--black); }

    .banner-dismiss {
      margin-top: 16px;
      font-size: 11px;
      color: var(--gray-300);
      cursor: pointer;
      background: none;
      border: none;
      font-family: var(--sans);
      transition: color .2s;
    }
    .banner-dismiss:hover { color: var(--gray-700); }

    /* ─── Animations ────────────────────────────────────────────── */
    .fade-up {
      opacity: 0;
      transform: translateY(28px);
      transition: opacity .6s ease, transform .6s ease;
    }
    .fade-up.visible {
      opacity: 1;
      transform: translateY(0);
    }

    /* ─── Responsive ─────────────────────────────────────────────── */
    @media (max-width: 1024px) {
      .services-grid  { grid-template-columns: repeat(2, 1fr); }
      .products-grid  { grid-template-columns: repeat(2, 1fr); }
      footer          { grid-template-columns: 1fr 1fr; }
    }

    @media (max-width: 768px) {
      .nav { padding: 0 24px; }
      .nav-links, .nav-cta { display: none; }
      .burger { display: flex; }

      section { padding: 72px 24px; }
      .half-section { padding: 56px 24px; }

      #bodas {
        grid-template-columns: 1fr;
        gap: 40px;
        padding: 72px 24px;
      }
      #bautizos-comuniones { grid-template-columns: 1fr; }
      .services-grid        { grid-template-columns: 1fr; }
      .products-grid        { grid-template-columns: repeat(2, 1fr); gap: 20px 12px; }

      .blog-card.featured {
        grid-template-columns: 1fr;
        gap: 24px;
      }
      .blog-grid { grid-template-columns: 1fr; }

      .nl-form { flex-direction: column; }
      .nl-input { border: 1px solid rgba(255,255,255,.2); }
      .nl-btn   { border: 1px solid var(--white); padding: 14px; }

      footer { grid-template-columns: 1fr; gap: 32px; padding: 48px 24px; }
      .footer-bottom { padding: 20px 24px; flex-direction: column; gap: 12px; }

      .banner-box { padding: 40px 28px; }
      .banner-form { flex-direction: column; }
      .banner-input { border-right: 1px solid var(--gray-300); border-bottom: none; }
    }

/* ============================================================
   WooCommerce — ficha de producto y tienda (estilo del tema)
   Añadido por el tema; usa los mismos tokens del diseño.
   ============================================================ */

/* Filtros como enlaces (archivo de tienda) */
.shop-filter a.filter-btn { text-decoration: none; display: inline-block; }

/* Paginación */
.av-pagination, .woocommerce-pagination { margin-top: 56px; }
.av-pagination .nav-links, .woocommerce-pagination ul {
  display: flex; gap: 6px; list-style: none; justify-content: center; padding: 0;
}
.av-pagination a, .av-pagination span,
.woocommerce-pagination a, .woocommerce-pagination span {
  font-family: var(--sans); font-size: 12px; letter-spacing: .12em;
  padding: 10px 16px; border: 1px solid var(--gray-300); color: var(--black);
  text-decoration: none; transition: background .2s, color .2s;
}
.av-pagination .current, .woocommerce-pagination .current {
  background: var(--black); color: var(--white); border-color: var(--black);
}
.av-pagination a:hover, .woocommerce-pagination a:hover {
  background: var(--black); color: var(--white); border-color: var(--black);
}

/* ─── Ficha de producto ─────────────────────────────────────── */
.av-single { padding: 120px 48px 96px; max-width: 1280px; margin: 0 auto; }

.av-breadcrumb {
  font-family: var(--sans); font-size: 11px; letter-spacing: .12em;
  text-transform: uppercase; color: var(--gray-500); margin-bottom: 40px;
}
.av-breadcrumb a { color: var(--gray-700); }
.av-breadcrumb a:hover { color: var(--black); }

.av-single-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start;
}

.av-single-gallery img { width: 100%; height: auto; }
.av-single-gallery .flex-control-thumbs {
  display: flex; gap: 10px; margin-top: 14px; padding: 0; list-style: none;
}
.av-single-gallery .flex-control-thumbs li { width: 72px; }

.av-single-summary { padding-top: 8px; }
.av-single-summary .section-label {
  font-family: var(--sans); font-size: 11px; letter-spacing: .18em;
  text-transform: uppercase; color: var(--gray-500); margin-bottom: 16px;
}
.av-single-title {
  font-family: var(--serif); font-weight: 400; font-size: 52px;
  line-height: 1.05; margin-bottom: 24px;
}
.av-single-price {
  font-family: var(--serif); font-size: 30px; color: var(--black);
  margin-bottom: 28px;
}
.av-single-price del { color: var(--gray-300); margin-right: 10px; }
.av-single-price ins { text-decoration: none; }

.av-single-excerpt {
  font-size: 15px; line-height: 1.7; color: var(--gray-700);
  margin-bottom: 36px; max-width: 46ch;
}

/* Botón y cantidad (formulario add-to-cart de Woo) */
.av-single-cart { margin-bottom: 36px; }
.av-single-cart form.cart { display: flex; gap: 12px; align-items: stretch; flex-wrap: wrap; }
.av-single-cart .quantity { display: inline-flex; align-items: center; }
.av-single-cart .quantity input.qty {
  width: 64px; height: 100%; min-height: 48px; text-align: center;
  border: 1px solid var(--gray-300); font-family: var(--sans); font-size: 14px;
  background: var(--white); color: var(--black);
}
.av-single-cart button.single_add_to_cart_button,
.av-single-cart .button {
  font-family: var(--sans); font-size: 11px; letter-spacing: .14em;
  text-transform: uppercase; background: var(--black); color: var(--white);
  padding: 16px 40px; border: 1px solid var(--black); cursor: pointer;
  transition: background .2s, color .2s;
}
.av-single-cart button.single_add_to_cart_button:hover {
  background: var(--white); color: var(--black);
}

.av-single-meta { border-top: 1px solid var(--gray-100); padding-top: 24px; }
.av-meta-row {
  display: flex; justify-content: space-between; gap: 24px;
  font-size: 12px; color: var(--gray-700); padding: 8px 0;
  font-family: var(--sans); letter-spacing: .04em;
}
.av-meta-row > span:first-child { color: var(--gray-500); text-transform: uppercase; letter-spacing: .12em; font-size: 11px; }
.av-single-meta a { color: var(--black); }

/* Pestañas (descripción / valoraciones) */
.av-single-tabs { margin-top: 80px; max-width: 760px; }
.woocommerce-tabs ul.tabs {
  display: flex; gap: 28px; list-style: none; padding: 0;
  border-bottom: 1px solid var(--gray-100); margin-bottom: 28px;
}
.woocommerce-tabs ul.tabs li a {
  font-family: var(--sans); font-size: 12px; letter-spacing: .14em;
  text-transform: uppercase; color: var(--gray-500); padding-bottom: 14px;
  display: inline-block; text-decoration: none;
}
.woocommerce-tabs ul.tabs li.active a { color: var(--black); border-bottom: 1px solid var(--black); }
.woocommerce-Tabs-panel h2 { font-family: var(--serif); font-weight: 400; font-size: 26px; margin-bottom: 16px; }
.woocommerce-Tabs-panel p { font-size: 15px; line-height: 1.7; color: var(--gray-700); }

/* Relacionados */
.related.products { margin-top: 88px; }
.related.products > h2 {
  font-family: var(--serif); font-weight: 400; font-size: 34px; margin-bottom: 36px;
}
.related.products ul.products, .related.products .products {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px 24px;
  list-style: none; padding: 0; margin: 0;
}

/* Avisos de WooCommerce con la estética del tema */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
  font-family: var(--sans); font-size: 13px; border: 1px solid var(--gray-300);
  background: var(--gray-50); color: var(--black); padding: 16px 20px;
  list-style: none; margin-bottom: 24px;
}
.woocommerce-message a.button, .woocommerce-info a.button {
  float: right; background: var(--black); color: var(--white);
  font-size: 10px; letter-spacing: .12em; text-transform: uppercase;
  padding: 8px 16px; text-decoration: none;
}

/* Carrito / checkout: botones coherentes */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit {
  font-family: var(--sans); font-size: 11px; letter-spacing: .14em;
  text-transform: uppercase; background: var(--black); color: var(--white);
  border: 1px solid var(--black); padding: 14px 28px; border-radius: 0;
  transition: background .2s, color .2s;
}
.woocommerce a.button:hover, .woocommerce button.button:hover {
  background: var(--white); color: var(--black);
}

/* Responsive ficha */
@media (max-width: 860px) {
  .av-single { padding: 96px 24px 64px; }
  .av-single-grid { grid-template-columns: 1fr; gap: 40px; }
  .av-single-title { font-size: 40px; }
  .related.products ul.products, .related.products .products { grid-template-columns: 1fr 1fr; }
}

/* ============================================================
   WooCommerce — Carrito y Checkout (estilo del tema)
   Estilado por CSS para no romper la lógica de Woo en updates.
   ============================================================ */

/* Contenedor general de páginas Woo */
.woocommerce-cart .wrap,
.woocommerce-checkout .wrap,
.woocommerce-account .wrap,
.woocommerce-order-received .wrap { max-width: 1180px; }

.woocommerce-cart h1.entry-title,
.woocommerce-checkout h1.entry-title,
.woocommerce-account h1.entry-title {
  font-family: var(--serif); font-weight: 400; font-size: 48px;
  margin-bottom: 40px;
}

/* ─── Tabla del carrito ─────────────────────────────────────── */
.woocommerce-cart table.cart,
.woocommerce table.shop_table {
  border: 1px solid var(--gray-100); border-collapse: collapse; width: 100%;
  font-family: var(--sans);
}
.woocommerce table.shop_table th {
  font-family: var(--sans); font-size: 11px; letter-spacing: .14em;
  text-transform: uppercase; color: var(--gray-500); font-weight: 500;
  padding: 18px 16px; border-bottom: 1px solid var(--gray-100); text-align: left;
}
.woocommerce table.shop_table td {
  padding: 20px 16px; border-bottom: 1px solid var(--gray-100);
  font-size: 14px; color: var(--gray-700); vertical-align: middle;
}
.woocommerce table.cart img { width: 72px; height: auto; }
.woocommerce table.cart .product-name a { color: var(--black); font-family: var(--serif); font-size: 18px; }
.woocommerce table.cart .product-name a:hover { color: var(--gray-700); }
.woocommerce a.remove {
  color: var(--gray-500) !important; font-size: 20px; line-height: 1;
  width: 22px; height: 22px; text-align: center; border-radius: 0;
}
.woocommerce a.remove:hover { background: var(--black) !important; color: var(--white) !important; }

/* Cantidad */
.woocommerce .quantity input.qty {
  width: 60px; height: 44px; text-align: center; border: 1px solid var(--gray-300);
  font-family: var(--sans); background: var(--white); color: var(--black);
}

/* Cupón + actualizar */
.woocommerce .cart .actions { padding: 20px 16px; }
.woocommerce .cart .coupon input#coupon_code {
  height: 46px; border: 1px solid var(--gray-300); padding: 0 14px;
  font-family: var(--sans); font-size: 13px; min-width: 200px;
}

/* Totales del carrito */
.cart_totals h2 { font-family: var(--serif); font-weight: 400; font-size: 26px; margin-bottom: 18px; }
.cart_totals table { border: 1px solid var(--gray-100); }
.cart_totals .order-total .amount { font-family: var(--serif); font-size: 22px; }
.wc-proceed-to-checkout a.checkout-button {
  display: block; text-align: center; background: var(--black) !important;
  color: var(--white) !important; font-family: var(--sans); font-size: 12px;
  letter-spacing: .14em; text-transform: uppercase; padding: 18px !important;
  border: 1px solid var(--black); margin-top: 16px;
}
.wc-proceed-to-checkout a.checkout-button:hover { background: var(--white) !important; color: var(--black) !important; }

/* ─── Checkout ──────────────────────────────────────────────── */
.woocommerce-checkout h3 {
  font-family: var(--serif); font-weight: 400; font-size: 26px;
  margin-bottom: 22px; padding-bottom: 12px; border-bottom: 1px solid var(--gray-100);
}
.woocommerce form .form-row label {
  font-family: var(--sans); font-size: 12px; letter-spacing: .06em;
  color: var(--gray-700); margin-bottom: 8px; display: block;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-checkout #order_comments,
.select2-container .select2-selection {
  border: 1px solid var(--gray-300) !important; border-radius: 0 !important;
  padding: 13px 14px !important; font-family: var(--sans); font-size: 14px;
  background: var(--white); color: var(--black); width: 100%; min-height: 48px;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row select:focus,
.woocommerce form .form-row textarea:focus {
  border-color: var(--black) !important; outline: none;
}

/* Resumen del pedido */
.woocommerce-checkout #order_review {
  border: 1px solid var(--gray-100); padding: 28px; background: var(--gray-50);
}
.woocommerce-checkout #order_review_heading {
  font-family: var(--serif); font-weight: 400; font-size: 26px; margin-bottom: 18px;
}
#order_review .order-total .amount { font-family: var(--serif); font-size: 22px; }

/* Métodos de pago */
.woocommerce-checkout #payment { background: transparent; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods {
  border-bottom: 1px solid var(--gray-100); padding: 0 0 18px;
}
.woocommerce-checkout #payment ul.payment_methods li { font-family: var(--sans); font-size: 14px; }
.woocommerce-checkout #payment div.payment_box {
  background: var(--white); border: 1px solid var(--gray-100); font-size: 13px;
}
.woocommerce-checkout #payment div.payment_box::before { display: none; }

/* Botón Realizar el pedido */
.woocommerce #payment #place_order,
.woocommerce-checkout button#place_order {
  width: 100%; background: var(--black) !important; color: var(--white) !important;
  font-family: var(--sans); font-size: 13px; letter-spacing: .16em;
  text-transform: uppercase; padding: 20px !important; border: 1px solid var(--black);
  margin-top: 18px; transition: background .2s, color .2s;
}
.woocommerce-checkout button#place_order:hover { background: var(--white) !important; color: var(--black) !important; }

/* Pasos / mensaje de pedido recibido */
.woocommerce-order .woocommerce-order-overview,
.woocommerce-thankyou-order-received {
  font-family: var(--serif); font-size: 24px;
}
.woocommerce ul.order_details {
  display: flex; flex-wrap: wrap; gap: 28px; list-style: none; padding: 24px 0;
  border-top: 1px solid var(--gray-100); border-bottom: 1px solid var(--gray-100);
}
.woocommerce ul.order_details li {
  font-family: var(--sans); font-size: 11px; letter-spacing: .12em;
  text-transform: uppercase; color: var(--gray-500); border: 0;
}
.woocommerce ul.order_details li strong {
  display: block; font-family: var(--serif); font-size: 18px;
  letter-spacing: 0; text-transform: none; color: var(--black); margin-top: 6px;
}

/* Responsive carrito/checkout */
@media (max-width: 860px) {
  .woocommerce-cart h1.entry-title,
  .woocommerce-checkout h1.entry-title { font-size: 36px; }
  .woocommerce table.shop_table, .woocommerce table.shop_table tbody,
  .woocommerce table.shop_table tr, .woocommerce table.shop_table td { display: block; width: 100%; }
  .woocommerce-checkout #order_review { padding: 20px; }
}
