/* ==========================================================================
   El Roble Market — design system "Bajo el Roble"
   Source of truth: docs/design-proposals/propuestas-diseno.html (final)
   ========================================================================== */

:root {
    /* Brand palette (from the approved mockups / logo) */
    --rb-green:      #205c40; /* oak green — primary actions */
    --rb-green-deep: #1e3a2a; /* dark sections, announce bar */
    --rb-leaf:       #7fb069; /* leaf accent */
    --rb-leaf-soft:  #a9c98f; /* leaf on dark grounds */
    --rb-wood:       #8a5a33; /* wood — eyebrows, secondary accents */
    --rb-ivory:      #f4f6ef; /* page ground */
    --rb-surface:    #ffffff; /* cards */
    --rb-surface-2:  #fbfcf8; /* subtle panels */
    --rb-mint:       #eaf2ec; /* selected/active soft fill */
    --rb-chip:       #eef1e6; /* weight chips */
    --rb-line:       #e0e5d6; /* borders */
    --rb-ink:        #243128; /* body text */
    --rb-ink-deep:   #1c2b21; /* headings */
    --rb-muted:      #54655a; /* secondary text */
    --rb-faint:      #7c8a76; /* tertiary text */
    --rb-danger:     #b0533a;

    /* Type */
    --rb-serif: Georgia, "Iowan Old Style", "Times New Roman", serif;
    --rb-sans:  "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;

    /* Rhythm */
    --rb-radius:    10px;
    --rb-radius-lg: 16px;
    --rb-gutter:    clamp(16px, 4vw, 34px);
    --rb-shadow:    0 14px 34px rgba(32, 60, 40, .10);
}

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

body {
    margin: 0;
    background: var(--rb-ivory);
    color: var(--rb-ink);
    font-family: var(--rb-sans);
    line-height: 1.6;
}

h1, h2, h3, h4 {
    font-family: var(--rb-serif);
    color: var(--rb-ink-deep);
    letter-spacing: -.01em;
    line-height: 1.15;
    margin: 0 0 .5em;
    text-wrap: balance;
}

a { color: var(--rb-green); }

:focus-visible {
    outline: 3px solid var(--rb-green);
    outline-offset: 2px;
}

/* --------------------------------------------------------------------------
   Announce bar + header
   -------------------------------------------------------------------------- */
.rb-announce {
    background: var(--rb-green-deep);
    color: #cfe0c8;
    font-size: .76rem;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    text-align: center;
    padding: 8px 12px;
}
.rb-announce b, .rb-announce strong { color: var(--rb-leaf-soft); }

.rb-header {
    display: flex;
    align-items: center;
    gap: 26px;
    padding: 18px var(--rb-gutter);
    border-bottom: 1px solid var(--rb-line);
    flex-wrap: wrap;
}

.rb-logo {
    display: flex;
    align-items: center;
    gap: 11px;
    text-decoration: none;
}
.rb-logo-img {
    display: block;
    width: auto;
    height: 62px;
}
.rb-logo-name strong {
    display: block;
    font-family: var(--rb-serif);
    font-size: 1.15rem;
    color: var(--rb-green);
    line-height: 1.1;
}
.rb-logo-name span {
    font-size: .62rem;
    color: var(--rb-faint);
    text-transform: uppercase;
    letter-spacing: .2em;
}

.rb-nav {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-left: auto;
}
.rb-nav-list {
    display: flex;
    gap: 20px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.rb-nav-list a {
    font-size: .88rem;
    font-weight: 600;
    color: #3c4c40;
    text-decoration: none;
}
.rb-nav-list a:hover { color: var(--rb-green); }

.rb-account {
    font-size: .86rem;
    font-weight: 600;
    color: #3c4c40;
    text-decoration: none;
    white-space: nowrap;
}
.rb-account:hover { color: var(--rb-green); }

.rb-login-apply {
    margin: 14px 0 0;
    padding-top: 14px;
    border-top: 1px solid var(--rb-line);
    font-size: .86rem;
    color: var(--rb-muted);
}
.rb-login-apply a { font-weight: 700; }

.rb-cart {
    background: var(--rb-green);
    color: #fff;
    border-radius: 999px;
    padding: 8px 16px;
    font-size: .82rem;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}

/* --------------------------------------------------------------------------
   Buttons, chips, layout primitives
   -------------------------------------------------------------------------- */
.rb-btn {
    display: inline-block;
    background: var(--rb-green);
    color: #fff;
    font-weight: 600;
    font-size: .92rem;
    padding: 12px 24px;
    border: none;
    border-radius: var(--rb-radius);
    text-decoration: none;
    cursor: pointer;
    font-family: inherit;
}
.rb-btn--ghost {
    background: transparent;
    color: var(--rb-green);
    border: 1.5px solid var(--rb-green);
}

.rb-chip {
    font-size: .75rem;
    font-weight: 700;
    color: #3c4c40;
    background: var(--rb-chip);
    border-radius: 6px;
    padding: 3px 9px;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.rb-kick {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .16em;
    color: var(--rb-wood);
    margin: 0 0 14px;
}
.rb-kick::before {
    content: "";
    width: 26px;
    height: 2px;
    background: var(--rb-wood);
}

.rb-main {
    max-width: 1180px;
    margin: 0 auto;
    padding: 24px var(--rb-gutter) 48px;
}

/* --------------------------------------------------------------------------
   Home hero (Phase 0 placeholder; Phase 2 completes it)
   -------------------------------------------------------------------------- */
.rb-hero {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: 40px;
    align-items: center;
    padding: clamp(24px, 6vw, 54px) 0;
}
.rb-display {
    font-size: clamp(1.9rem, 4.6vw, 2.7rem);
    max-width: 16ch;
}
.rb-display em {
    font-style: italic;
    color: var(--rb-green);
}
.rb-lead {
    font-size: 1rem;
    color: var(--rb-muted);
    max-width: 46ch;
    line-height: 1.65;
}
.rb-hero-actions {
    margin-top: 26px;
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
}
.rb-hero-aside {
    display: flex;
    justify-content: center;
}
.rb-hero-brand {
    max-width: 400px;
    width: 100%;
    text-align: center;
    padding: 34px 30px 24px;
    background:
        radial-gradient(120% 90% at 50% 0%, var(--rb-mint) 0%, var(--rb-surface) 55%);
}
.rb-hero-brand img {
    width: 100%;
    height: auto;
    max-width: 330px;
}
.rb-hero-brand-note {
    margin: 18px 0 0;
    padding-top: 16px;
    border-top: 1px solid var(--rb-line);
    font-size: .8rem;
    color: var(--rb-faint);
    letter-spacing: .04em;
}

/* --------------------------------------------------------------------------
   Cards (shared base for product/summary cards, refined in later phases)
   -------------------------------------------------------------------------- */
.rb-card {
    background: var(--rb-surface);
    border: 1px solid var(--rb-line);
    border-radius: var(--rb-radius-lg);
    padding: 22px 24px;
}
.rb-card--floating { box-shadow: var(--rb-shadow); }

/* --------------------------------------------------------------------------
   Language switcher (Polylang)
   -------------------------------------------------------------------------- */
.rb-lang {
    list-style: none;
    display: flex;
    gap: 2px;
    margin: 0 0 0 6px;
    padding: 2px;
    border: 1px solid var(--rb-line);
    border-radius: 999px;
    background: var(--rb-surface);
}
.rb-lang a {
    display: block;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .06em;
    color: var(--rb-muted);
    text-decoration: none;
}
.rb-lang-on a { background: var(--rb-green); color: #fff; }

/* --------------------------------------------------------------------------
   Section scaffolding
   -------------------------------------------------------------------------- */
.rb-section { padding: 34px 0 8px; }
.rb-section-title { font-size: clamp(1.35rem, 3vw, 1.7rem); margin-top: 6px; }

/* --------------------------------------------------------------------------
   Trust strip
   -------------------------------------------------------------------------- */
.rb-trust {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    background: var(--rb-surface-2);
    border-block: 1px solid var(--rb-line);
    margin: 8px calc(-1 * var(--rb-gutter)) 0;
}
.rb-trust-item {
    padding: 20px var(--rb-gutter);
    border-right: 1px solid var(--rb-line);
}
.rb-trust-item:last-child { border-right: none; }
.rb-trust-item strong { display: block; font-size: .92rem; color: var(--rb-ink-deep); }
.rb-trust-item span { font-size: .8rem; color: var(--rb-faint); }

/* --------------------------------------------------------------------------
   Maritime / air comparison
   -------------------------------------------------------------------------- */
.rb-modes {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 22px;
}
.rb-mode {
    background: var(--rb-surface);
    border: 1px solid var(--rb-line);
    border-top: 5px solid var(--rb-green);
    border-radius: var(--rb-radius-lg);
    padding: 24px 26px;
}
.rb-mode--air { border-top-color: var(--rb-leaf); }
.rb-mode-tag {
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .14em;
    color: var(--rb-wood);
    margin: 0 0 4px;
}
.rb-mode h3 { font-size: 1.35rem; margin: 0; }
.rb-mode-price {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--rb-green);
    font-variant-numeric: tabular-nums;
    margin: 6px 0 4px;
}
.rb-mode-desc { font-size: .84rem; color: var(--rb-muted); margin: 0; }

/* --------------------------------------------------------------------------
   Product cards
   -------------------------------------------------------------------------- */
.rb-products {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 20px;
    margin-top: 22px;
}
.rb-product {
    background: var(--rb-surface);
    border: 1px solid var(--rb-line);
    border-radius: var(--rb-radius-lg);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.rb-product-media {
    display: block;
    border-bottom: 1px solid var(--rb-line);
    background: #fff;
}
.rb-product-media img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1 / .85;
    object-fit: contain;
    padding: 12px;
}
.rb-product-body { padding: 14px 16px 16px; display: grid; gap: 8px; }
.rb-product-title { font-size: 1rem; margin: 0; }
.rb-product-title a { color: var(--rb-ink-deep); text-decoration: none; }
.rb-product-title a:hover { color: var(--rb-green); }
.rb-product-meta {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 10px;
}
.rb-product-price {
    font-weight: 700;
    color: var(--rb-green);
    font-variant-numeric: tabular-nums;
}
.rb-product-price del { color: var(--rb-faint); font-weight: 400; margin-right: 6px; }
.rb-product-ship {
    justify-self: start;
    font-size: .76rem;
    color: var(--rb-muted);
    background: var(--rb-ivory);
    border-radius: 8px;
    padding: 5px 10px;
}

/* --------------------------------------------------------------------------
   Story / four steps
   -------------------------------------------------------------------------- */
.rb-story {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
    background: var(--rb-green-deep);
    color: #dfe8dc;
    border-radius: var(--rb-radius-lg);
    padding: clamp(24px, 5vw, 44px);
    margin-top: 40px;
}
.rb-story h2 { color: #fff; font-size: clamp(1.4rem, 3.4vw, 1.9rem); }
.rb-story h2 em { font-style: italic; color: var(--rb-leaf-soft); }
.rb-story-copy p { color: #b9cbb4; font-size: .94rem; max-width: 52ch; }
.rb-steps {
    list-style: none;
    margin: 0;
    padding: 0;
    counter-reset: rb-step;
}
.rb-steps li {
    display: grid;
    grid-template-columns: 34px 1fr;
    gap: 4px 12px;
    padding: 14px 0;
    border-bottom: 1px solid #2f4d3a;
    counter-increment: rb-step;
}
.rb-steps li:last-child { border-bottom: none; }
.rb-steps li::before {
    content: counter(rb-step);
    grid-row: 1 / 3;
    font-family: var(--rb-serif);
    font-size: 1.2rem;
    color: var(--rb-leaf-soft);
}
.rb-steps strong { color: #fff; font-size: .94rem; }
.rb-steps span { font-size: .82rem; color: #b9cbb4; grid-column: 2; }

/* --------------------------------------------------------------------------
   Shipping calculator (markup from elroble-core)
   -------------------------------------------------------------------------- */
.rb-calc { max-width: 420px; width: 100%; }
.rb-calc-title { font-size: 1.15rem; margin: 0 0 2px; }
.rb-calc-sub { font-size: .8rem; color: var(--rb-faint); margin: 0 0 14px; }
.rb-calc-label {
    display: block;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--rb-muted);
    margin: 12px 0 5px;
}
.rb-calc-input {
    width: 100%;
    font: inherit;
    font-size: .9rem;
    padding: 10px 12px;
    border: 1px solid #ccd6c4;
    border-radius: 9px;
    background: var(--rb-surface-2);
    color: var(--rb-ink);
}
.rb-calc-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.rb-calc-type { display: flex; gap: 10px; }
.rb-calc-type-opt { flex: 1; position: relative; }
.rb-calc-type-opt input {
    position: absolute;
    opacity: 0;
    inset: 0;
    cursor: pointer;
}
.rb-calc-type-opt span {
    display: block;
    text-align: center;
    border: 1.5px solid #ccd6c4;
    border-radius: 9px;
    padding: 9px 6px;
    font-size: .85rem;
    font-weight: 600;
    color: var(--rb-muted);
}
.rb-calc-type-opt input:checked + span {
    border-color: var(--rb-green);
    background: var(--rb-mint);
    color: var(--rb-green);
}
.rb-calc-type-opt input:focus-visible + span {
    outline: 3px solid var(--rb-green);
    outline-offset: 2px;
}
.rb-calc-submit { width: 100%; margin-top: 16px; }
.rb-calc-result { margin-top: 14px; }
.rb-calc-out {
    background: var(--rb-ivory);
    border-radius: 10px;
    padding: 13px 16px;
    display: flex;
    justify-content: space-between;
    align-items: baseline;
}
.rb-calc-out span { font-size: .8rem; color: var(--rb-muted); }
.rb-calc-out strong {
    font-size: 1.3rem;
    color: var(--rb-green);
    font-variant-numeric: tabular-nums;
}
.rb-calc-note {
    font-size: .78rem;
    color: var(--rb-wood);
    background: #f7f2ea;
    border-radius: 8px;
    padding: 8px 12px;
    margin: 8px 0 0;
}
.rb-calc-error {
    font-size: .82rem;
    color: var(--rb-danger);
    margin: 10px 0 0;
}

/* --------------------------------------------------------------------------
   Mockup-fidelity details (design review pass)
   -------------------------------------------------------------------------- */
/* Hero: decorative leaf + secondary underline action */
.rb-hero { position: relative; overflow: hidden; }
.rb-hero-leaf {
    position: absolute;
    left: -40px;
    bottom: -60px;
    width: 340px;
    height: 340px;
    opacity: .07;
    pointer-events: none;
}
.rb-hero-copy, .rb-hero-aside { position: relative; }
.rb-link-under {
    align-self: center;
    color: var(--rb-green);
    font-weight: 600;
    font-size: .92rem;
    text-decoration: underline;
    text-underline-offset: 4px;
}

/* Section eyebrows without the dash (mockup .kick2) */
.rb-kick--bare::before { display: none; }

/* Trust strip: icon + text rows */
.rb-trust-item { display: flex; gap: 14px; align-items: center; }
.rb-trust-ic { flex: none; }

/* Mode cards: big price on the right (mockup grid) */
.rb-mode {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 2px 16px;
    align-items: center;
}
.rb-mode-tag, .rb-mode h3, .rb-mode h2 { grid-column: 1; }
.rb-mode-price {
    grid-column: 2;
    grid-row: 1 / 3;
    font-size: 1.9rem;
    margin: 0;
    align-self: center;
}
.rb-mode-price .woocommerce-Price-amount { font-variant-numeric: tabular-nums; }
.rb-mode-desc { grid-column: 1 / 3; margin-top: 8px; }

/* Home product cards: serif titles like the mockup */
.rb-product-title { font-family: var(--rb-serif); font-size: 1.02rem; }

/* Breadcrumbs (shop + product) */
.rb-crumbs {
    font-size: .78rem;
    color: var(--rb-faint);
    padding: 4px 0 10px;
}
.rb-crumbs a { color: var(--rb-faint); text-decoration: none; }
.rb-crumbs a:hover { color: var(--rb-green); }

/* Active filter chips on shop archives */
.rb-active-chips { display: flex; gap: 8px; margin: 4px 0 10px; flex-wrap: wrap; }
.rb-fchip {
    font-size: .78rem;
    font-weight: 600;
    background: var(--rb-mint);
    color: var(--rb-green);
    border-radius: 999px;
    padding: 5px 12px;
    text-decoration: none;
}
.rb-fchip i { font-style: normal; margin-left: 6px; opacity: .6; }

/* Shop page title */
.rb-wc .woocommerce-products-header__title {
    font-size: clamp(1.5rem, 3.6vw, 1.9rem);
    margin-bottom: 4px;
}

/* Single product: meta eyebrow + shipping-box header + gallery frame */
.rb-pdp-meta-line {
    font-size: .74rem;
    color: var(--rb-faint);
    text-transform: uppercase;
    letter-spacing: .1em;
    margin: -4px 0 8px;
}
.rb-pdp-shipping-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    margin-bottom: 12px;
}
.rb-pdp-shipping-head .rb-pdp-shipping-title { margin: 0; }
.rb-wc div.product div.images img {
    border: 1px solid var(--rb-line);
    border-radius: var(--rb-radius-lg);
    background: #fff;
}
.rb-wc div.product .flex-control-thumbs li img {
    border: 1.5px solid var(--rb-line);
    border-radius: 10px;
    opacity: 1;
}
.rb-wc div.product .flex-control-thumbs li img.flex-active { border-color: var(--rb-green); }

/* Checkout: mockup layout — stacked numbered cards left, sticky summary right */
.rb-wc form.woocommerce-checkout {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 0 26px;
    align-items: start;
}
.rb-wc form.woocommerce-checkout .col2-set {
    grid-column: 1;
    grid-row: 1 / 5;
    width: 100%;
    display: grid;
    gap: 18px;
}
.rb-wc form.woocommerce-checkout .col2-set .col-1,
.rb-wc form.woocommerce-checkout .col2-set .col-2 {
    width: 100%;
    float: none;
}
.rb-wc form.woocommerce-checkout #order_review_heading {
    grid-column: 2;
    grid-row: 1;
    margin: 0 0 12px;
    font-size: 1.15rem;
}
.rb-wc form.woocommerce-checkout #order_review {
    grid-column: 2;
    grid-row: 2;
    position: sticky;
    top: 20px;
}
/* Numbered section headings (1 Quién compra / 2 Quién recibe / 3 Tu pedido) */
.rb-wc form.woocommerce-checkout { counter-reset: rb-co; }
.rb-wc .woocommerce-billing-fields > h3::before,
.rb-wc .woocommerce-shipping-fields > h3::before,
.rb-wc form.woocommerce-checkout #order_review_heading::before {
    counter-increment: rb-co;
    content: counter(rb-co);
    display: inline-grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--rb-green);
    color: #fff;
    font-family: var(--rb-serif);
    font-size: .9rem;
    margin-right: 10px;
    vertical-align: -4px;
}

/* My Account orders: status as chip, tabular cells */
.rb-wc .woocommerce-orders-table td, .rb-wc .woocommerce-orders-table th { font-variant-numeric: tabular-nums; }
.rb-wc .woocommerce-orders-table__cell-order-status {
    font-size: .78rem;
    font-weight: 700;
}
.rb-wc .woocommerce-orders-table__cell-order-status::first-line { line-height: 2; }

/* Footer language block */
.rb-lang--footer { margin-left: 0; align-self: center; }

@media (max-width: 880px) {
    .rb-wc form.woocommerce-checkout { display: block; }
    .rb-wc form.woocommerce-checkout #order_review { position: static; }
    .rb-mode-price { font-size: 1.5rem; }
    .rb-hero-leaf { display: none; }
}

/* --------------------------------------------------------------------------
   Content pages
   -------------------------------------------------------------------------- */
.rb-page-head { max-width: 720px; padding: 18px 0 8px; }
.rb-title { font-size: clamp(1.6rem, 4vw, 2.2rem); }
.rb-prose { max-width: 68ch; font-size: .97rem; line-height: 1.75; color: var(--rb-muted); }
.rb-prose p { margin: 0 0 1em; }

.rb-howto { list-style: none; margin: 26px 0 0; padding: 0; counter-reset: rb-howto; display: grid; gap: 16px; max-width: 760px; }
.rb-howto li {
    counter-increment: rb-howto;
    background: var(--rb-surface);
    border: 1px solid var(--rb-line);
    border-radius: var(--rb-radius-lg);
    padding: 20px 24px 20px 74px;
    position: relative;
}
.rb-howto li::before {
    content: counter(rb-howto);
    position: absolute;
    left: 24px;
    top: 22px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--rb-mint);
    color: var(--rb-green);
    font-family: var(--rb-serif);
    font-size: 1.1rem;
    display: grid;
    place-items: center;
}
.rb-howto h2 { font-size: 1.1rem; margin: 0 0 6px; }
.rb-howto p { margin: 0; font-size: .9rem; color: var(--rb-muted); }

.rb-page-calc { margin-top: 36px; max-width: 480px; }
.rb-page-calc h2 { font-size: 1.2rem; margin-bottom: 14px; }

.rb-province-grid {
    list-style: none;
    margin: 16px 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 8px;
}
.rb-province-grid li {
    background: var(--rb-surface);
    border: 1px solid var(--rb-line);
    border-radius: 9px;
    padding: 9px 14px;
    font-size: .86rem;
    color: #3c4c40;
}
.rb-finenote { margin-top: 26px; font-size: .8rem; color: var(--rb-faint); max-width: 70ch; }

.rb-faqs { max-width: 760px; display: grid; gap: 10px; }
.rb-faq {
    background: var(--rb-surface);
    border: 1px solid var(--rb-line);
    border-radius: var(--rb-radius-lg);
    padding: 0 22px;
}
.rb-faq summary {
    cursor: pointer;
    font-family: var(--rb-serif);
    font-size: 1.02rem;
    color: var(--rb-ink-deep);
    padding: 16px 0;
    list-style: none;
    position: relative;
    padding-right: 30px;
}
.rb-faq summary::-webkit-details-marker { display: none; }
.rb-faq summary::after {
    content: "+";
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    color: var(--rb-green);
    font-size: 1.3rem;
    font-family: var(--rb-sans);
}
.rb-faq[open] summary::after { content: "−"; }
.rb-faq p { margin: 0 0 18px; font-size: .9rem; color: var(--rb-muted); line-height: 1.65; }

.rb-contact-layout { display: grid; grid-template-columns: 1.4fr 1fr; gap: 26px; align-items: start; }
.rb-contact-form { display: grid; gap: 2px; }
.rb-contact-form textarea {
    font: inherit;
    font-size: .9rem;
    padding: 10px 12px;
    border: 1px solid #ccd6c4;
    border-radius: 9px;
    background: #fff;
    color: var(--rb-ink);
    resize: vertical;
}
.rb-contact-form .rb-btn { justify-self: start; margin-top: 4px; }
.rb-hp { position: absolute !important; left: -9999px !important; }
.rb-contact-aside h2 { font-size: 1.05rem; }
.rb-contact-note { font-size: .84rem; color: var(--rb-faint); }
.rb-form-notice {
    background: var(--rb-surface-2);
    border: 1px solid var(--rb-line);
    border-left: 4px solid var(--rb-green);
    border-radius: var(--rb-radius);
    padding: 12px 16px;
    font-size: .88rem;
    margin-bottom: 14px;
}
.rb-form-notice--ok { border-left-color: var(--rb-green); }
.rb-form-notice--error { border-left-color: var(--rb-danger); }

.rb-story--page { margin-top: 34px; }

@media (max-width: 880px) {
    .rb-contact-layout { grid-template-columns: 1fr; }
}

/* ==========================================================================
   WooCommerce
   ========================================================================== */

/* ---- Shared: buttons, notices, forms ---- */
.rb-wc .button,
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
    background: var(--rb-green);
    color: #fff;
    font-weight: 600;
    border-radius: var(--rb-radius);
    padding: 11px 20px;
    border: none;
}
.rb-wc .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover { background: var(--rb-green-deep); color: #fff; }
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled] { background: var(--rb-faint); color: #fff; }

/* WooCommerce's own `.button.alt` rule (0,3,0) outranks a plain `.rb-wc .button`,
   which left every primary CTA purple. The extra `body` raises specificity. */
/* `html .woocommerce` also matches body.woocommerce (single product, cart,
   checkout), which `body .woocommerce` cannot: body is not its own descendant. */
html .woocommerce a.button.alt,
html .woocommerce button.button.alt,
html .woocommerce input.button.alt,
html .woocommerce #respond input#submit.alt,
html .woocommerce a.button.alt.disabled,
html .woocommerce button.button.alt.disabled {
    background-color: var(--rb-green);
    color: #fff;
    border-radius: var(--rb-radius);
    font-weight: 600;
}
html .woocommerce a.button.alt:hover,
html .woocommerce button.button.alt:hover,
html .woocommerce input.button.alt:hover,
html .woocommerce #respond input#submit.alt:hover {
    background-color: var(--rb-green-deep);
    color: #fff;
}

.woocommerce-message, .woocommerce-info, .woocommerce-error {
    border-top-color: var(--rb-green);
    background: var(--rb-surface-2);
    color: var(--rb-ink);
    border-radius: 0 0 var(--rb-radius) var(--rb-radius);
}
.woocommerce-error { border-top-color: var(--rb-danger); }
.woocommerce-message::before, .woocommerce-info::before { color: var(--rb-green); }
.woocommerce-error::before { color: var(--rb-danger); }

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.rb-wc select, .rb-wc input[type=text], .rb-wc input[type=tel],
.rb-wc input[type=email], .rb-wc input[type=password], .rb-wc input[type=number] {
    font: inherit;
    font-size: .9rem;
    padding: 10px 12px;
    border: 1px solid #ccd6c4;
    border-radius: 9px;
    background: #fff;
    color: var(--rb-ink);
}
.woocommerce form .form-row label {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--rb-muted);
}

/* ---- Shop archive ---- */
.rb-shop-layout {
    display: grid;
    grid-template-columns: 250px 1fr;
    gap: 26px;
    align-items: start;
}
.rb-filter-box { padding: 18px 20px; margin-bottom: 16px; }
.rb-filter-box h4 { font-size: 1rem; margin: 0 0 12px; }
.rb-filter-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.rb-filter-list li { display: flex; justify-content: space-between; font-size: .86rem; }
.rb-filter-list a { color: #3c4c40; text-decoration: none; font-weight: 500; }
.rb-filter-list li.rb-on a { color: var(--rb-green); font-weight: 700; }
.rb-filter-count { color: var(--rb-faint); font-size: .78rem; font-variant-numeric: tabular-nums; }

.woocommerce-result-count { color: var(--rb-faint); font-size: .84rem; }
.woocommerce-ordering select { padding: 8px 12px; font-size: .84rem; }

/* Toolbar row: result count + ordering + active chips, like the mockup */
.rb-shop-content {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
}
.rb-shop-content > .woocommerce-result-count,
.rb-shop-content > .woocommerce-ordering {
    float: none;
    margin: 0;
}
.rb-shop-content > .rb-active-chips { margin: 0 0 0 auto; }
.rb-shop-content > ul.products,
.rb-shop-content > .woocommerce-pagination,
.rb-shop-content > .woocommerce-notices-wrapper,
.rb-shop-content > .woocommerce-info,
.rb-shop-content > .term-description { flex: 0 0 100%; width: 100%; }

/* Price filter */
.rb-price-filter { display: grid; gap: 10px; }
.rb-price-inputs {
    display: flex;
    align-items: center;
    gap: 8px;
}
.rb-price-inputs input {
    width: 100%;
    font: inherit;
    font-size: .85rem;
    padding: 8px 10px;
    border: 1px solid #ccd6c4;
    border-radius: 8px;
    background: var(--rb-surface-2);
    color: var(--rb-ink);
    font-variant-numeric: tabular-nums;
}
.rb-btn--small { padding: 8px 16px; font-size: .82rem; justify-self: start; }

/* Featured "Top envío" flag */
.rb-loop-flag {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 2;
    background: var(--rb-wood);
    color: #fff;
    font-size: .66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    padding: 4px 10px;
    border-radius: 999px;
}
.rb-wc ul.products li.product { position: relative; }

/* Product availability line */
.rb-pdp-stock {
    font-size: .82rem;
    font-weight: 600;
    color: #3f7a34;
    margin: 4px 0 0;
}
.rb-pdp-stock--out { color: var(--rb-danger); }

.rb-wc ul.products {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: 16px;
    margin: 18px 0 0;
    padding: 0;
}
.rb-wc ul.products::before, .rb-wc ul.products::after { display: none; }
.rb-wc ul.products li.product {
    width: auto !important;
    float: none !important;
    margin: 0 !important;
    background: var(--rb-surface);
    border: 1px solid var(--rb-line);
    border-radius: var(--rb-radius-lg);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    padding: 0 0 14px !important;
}
.rb-wc ul.products li.product a img {
    margin: 0 0 10px;
    border-bottom: 1px solid var(--rb-line);
    background: #fff;
    aspect-ratio: 1 / .85;
    object-fit: contain;
    padding: 10px;
    width: 100%;
    box-sizing: border-box;
}
.rb-wc ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--rb-serif);
    font-size: .98rem;
    color: var(--rb-ink-deep);
    padding: 0 14px;
}
.rb-wc ul.products li.product .price {
    color: var(--rb-green);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    padding: 0 14px;
    font-size: 1rem;
}
.rb-wc ul.products li.product .price del { color: var(--rb-faint); font-weight: 400; }
.rb-wc ul.products li.product .button {
    margin: 10px 14px 0;
    text-align: center;
    font-size: .84rem;
}
.rb-wc ul.products li.product .onsale {
    background: #e8a13d;
    color: #3d2c0d;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    min-height: 0;
    line-height: 1;
    padding: 6px 11px;
    top: 10px;
    left: 10px;
    right: auto;
    margin: 0;
}
.rb-loop-shipping {
    display: grid;
    gap: 6px;
    justify-items: start;
    padding: 6px 14px 0;
}
.rb-loop-hint {
    font-size: .74rem;
    color: var(--rb-muted);
    background: var(--rb-ivory);
    border-radius: 7px;
    padding: 4px 9px;
}
.woocommerce nav.woocommerce-pagination ul { border: none; }
.woocommerce nav.woocommerce-pagination ul li {
    border: none;
    margin: 0 3px;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    width: 36px;
    height: 36px;
    line-height: 36px;
    padding: 0;
    border-radius: 9px;
    border: 1px solid var(--rb-line);
    background: var(--rb-surface);
    color: #3c4c40;
    font-weight: 600;
}
.woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--rb-green);
    border-color: var(--rb-green);
    color: #fff;
}

/* ---- Single product ---- */
.rb-wc div.product .product_title {
    font-family: var(--rb-serif);
    font-size: clamp(1.4rem, 3vw, 1.7rem);
    color: var(--rb-ink-deep);
}
.rb-wc div.product p.price {
    color: var(--rb-green);
    font-size: 1.5rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
.rb-pdp-weight { margin: 4px 0 0; display: flex; align-items: center; gap: 8px; }
.rb-pdp-weight-label { font-size: .78rem; color: var(--rb-faint); }
.rb-pdp-shipping {
    margin-top: 22px;
    border-top: 1px solid var(--rb-line);
    padding-top: 18px;
}
.rb-pdp-shipping-title { font-size: 1.1rem; margin-bottom: 12px; }
.rb-pdp-shipping .rb-calc { max-width: none; box-shadow: none; }
.rb-wc div.product form.cart .button { padding: 13px 26px; }
.rb-wc div.product form.cart div.quantity .qty {
    height: 46px;
    border-radius: 9px;
    border: 1px solid #ccd6c4;
}
.rb-wc .woocommerce-tabs ul.tabs { padding: 0; margin-bottom: 0; }
.rb-wc .woocommerce-tabs ul.tabs::before { border-color: var(--rb-line); }
.rb-wc .woocommerce-tabs ul.tabs li {
    background: transparent;
    border: none;
    border-radius: 0;
    margin: 0;
    padding: 0 4px;
}
.rb-wc .woocommerce-tabs ul.tabs li::before,
.rb-wc .woocommerce-tabs ul.tabs li::after { display: none; }
.rb-wc .woocommerce-tabs ul.tabs li a {
    font-weight: 600;
    color: var(--rb-faint);
    padding: 11px 16px;
    border-bottom: 3px solid transparent;
}
.rb-wc .woocommerce-tabs ul.tabs li.active a {
    color: var(--rb-green);
    border-bottom-color: var(--rb-green);
}

/* ---- Cart ---- */
.rb-wc table.shop_table {
    border: 1px solid var(--rb-line);
    border-radius: var(--rb-radius-lg);
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    background: var(--rb-surface);
}
.rb-wc table.shop_table th {
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .12em;
    color: var(--rb-faint);
    background: var(--rb-surface-2);
    border-bottom: 1px solid var(--rb-line);
}
.rb-wc table.shop_table td {
    border-top: 1px solid #eef1e6;
    font-variant-numeric: tabular-nums;
}
.rb-wc table.shop_table td.product-name a { color: var(--rb-ink-deep); font-weight: 600; text-decoration: none; }
.rb-cart-item-weight { margin-left: 8px; }
.rb-wc .cart_totals h2 { font-size: 1.15rem; }
.rb-wc .cart_totals table.shop_table { box-shadow: var(--rb-shadow); }
.rb-wc td.actions .coupon .input-text { width: 140px; }
.rb-wc a.remove {
    color: var(--rb-danger) !important;
    background: transparent;
}
.rb-wc a.remove:hover { background: var(--rb-danger); color: #fff !important; }
.rb-wc .wc-proceed-to-checkout a.checkout-button {
    background: var(--rb-green);
    font-size: 1rem;
}
.shipping-type-selector select {
    font: inherit;
    font-size: .88rem;
    padding: 8px 12px;
    border: 1.5px solid var(--rb-green);
    border-radius: 9px;
    background: var(--rb-mint);
    color: var(--rb-green);
    font-weight: 600;
}

/* ---- Cart table (theme override: cart/cart.php) ---- */
.rb-cart-product { display: flex; gap: 12px; align-items: center; }
.rb-cart-thumb img {
    width: 54px;
    height: 54px;
    object-fit: contain;
    border-radius: 9px;
    background: var(--rb-ivory);
    display: block;
}
.rb-cart-titles a {
    font-family: var(--rb-serif);
    font-weight: 600;
    font-size: .95rem;
    color: var(--rb-ink-deep);
    text-decoration: none;
    display: block;
    line-height: 1.3;
}
.rb-cart-titles a:hover { color: var(--rb-green); }
.rb-cart-cat {
    display: block;
    font-size: .74rem;
    color: var(--rb-faint);
    margin-top: 2px;
}
.rb-wc td.product-weight,
.rb-wc th.product-weight { font-variant-numeric: tabular-nums; white-space: nowrap; }
.rb-cart-weight { font-weight: 600; }
.rb-cart-weight--none { font-weight: 400; color: var(--rb-faint); }
.rb-cart-weight-line {
    display: block;
    font-size: .72rem;
    color: var(--rb-faint);
}
.rb-wc td.product-remove, .rb-wc th.product-remove { width: 44px; text-align: center; }

/* ---- Price range slider ---- */
.rb-range {
    position: relative;
    height: 30px;
    margin: 6px 2px 2px;
}
.rb-range-track {
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 5px;
    background: var(--rb-line);
    border-radius: 3px;
}
.rb-range-fill {
    position: absolute;
    top: 0;
    bottom: 0;
    background: var(--rb-green);
    border-radius: 3px;
}
.rb-range-input {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 30px;
    margin: 0;
    background: none;
    pointer-events: none;
    -webkit-appearance: none;
    appearance: none;
}
.rb-range-input:focus { outline: none; }
.rb-range-input::-webkit-slider-runnable-track { height: 30px; background: transparent; border: none; }
.rb-range-input::-moz-range-track { height: 30px; background: transparent; border: none; }
.rb-range-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    pointer-events: auto;
    width: 17px;
    height: 17px;
    border-radius: 50%;
    background: #fff;
    border: 2.5px solid var(--rb-green);
    cursor: grab;
    margin-top: 6px;
}
.rb-range-input::-moz-range-thumb {
    pointer-events: auto;
    width: 17px;
    height: 17px;
    border-radius: 50%;
    background: #fff;
    border: 2.5px solid var(--rb-green);
    cursor: grab;
}
.rb-range-input:focus-visible::-webkit-slider-thumb { outline: 3px solid var(--rb-green); outline-offset: 2px; }
.rb-range-input:focus-visible::-moz-range-thumb { outline: 3px solid var(--rb-green); outline-offset: 2px; }
.rb-range-labels {
    display: flex;
    justify-content: space-between;
    font-size: .78rem;
    color: var(--rb-muted);
    font-variant-numeric: tabular-nums;
}

/* ---- Checkout ---- */
.rb-review-destination td { font-weight: 600; }
.rb-checkout-note {
    text-align: center;
    margin: 10px 0 0;
    font-size: .78rem;
    color: var(--rb-faint);
}
.rb-wc .form-row .description {
    font-size: .74rem;
    color: var(--rb-faint);
    margin-top: 4px;
}

.rb-wc form.checkout h3 {
    font-size: 1.15rem;
    display: flex;
    align-items: center;
    gap: 10px;
}
.rb-wc .col2-set .col-1, .rb-wc .col2-set .col-2 {
    background: var(--rb-surface);
    border: 1px solid var(--rb-line);
    border-radius: var(--rb-radius-lg);
    padding: 22px 26px;
    box-sizing: border-box;
}
.rb-wc #order_review_heading { margin-top: 24px; }
.rb-wc #order_review {
    background: var(--rb-surface);
    border: 1px solid var(--rb-line);
    border-radius: var(--rb-radius-lg);
    padding: 22px 26px;
}
.rb-wc #payment { background: var(--rb-ivory); border-radius: var(--rb-radius); }
.rb-wc #payment div.payment_box { background: var(--rb-mint); color: var(--rb-ink); }
.rb-wc #payment div.payment_box::before { border-bottom-color: var(--rb-mint); }
.rb-wc #place_order {
    width: 100%;
    font-size: 1rem;
    padding: 15px 20px;
}
.rb-recipient-picker-wrap {
    background: var(--rb-mint);
    border-radius: var(--rb-radius);
    padding: 12px 14px !important;
}
.rb-recipient-picker-wrap label { color: var(--rb-green) !important; }
.rb-recipient-picker-wrap select { width: 100%; margin-top: 6px; }

/* ---- My Account ---- */
.rb-wc .woocommerce-MyAccount-navigation { width: 230px; float: none; }
.rb-wc .woocommerce-MyAccount-content { width: auto; float: none; }
.rb-wc .woocommerce { display: block; }
@media (min-width: 881px) {
    body.woocommerce-account .rb-wc > .woocommerce {
        display: grid;
        grid-template-columns: 230px 1fr;
        gap: 26px;
        align-items: start;
    }
    .rb-wc .woocommerce-MyAccount-navigation,
    .rb-wc .woocommerce-MyAccount-content { width: auto; }
}
.rb-wc .woocommerce-MyAccount-navigation ul {
    list-style: none;
    margin: 0;
    padding: 0;
    background: var(--rb-surface);
    border: 1px solid var(--rb-line);
    border-radius: var(--rb-radius-lg);
    overflow: hidden;
}
.rb-wc .woocommerce-MyAccount-navigation ul li {
    border-bottom: 1px solid #eef1e6;
}
.rb-wc .woocommerce-MyAccount-navigation ul li:last-child { border-bottom: none; }
.rb-wc .woocommerce-MyAccount-navigation ul li a {
    display: block;
    padding: 13px 20px;
    font-size: .88rem;
    font-weight: 600;
    color: #3c4c40;
    text-decoration: none;
}
.rb-wc .woocommerce-MyAccount-navigation ul li.is-active a {
    background: var(--rb-mint);
    color: var(--rb-green);
    border-left: 4px solid var(--rb-green);
    padding-left: 16px;
}

/* ---- Mis destinatarios ---- */
.rb-recipient-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 14px;
    margin-bottom: 26px;
}
.rb-recipient-card { padding: 16px 18px; font-size: .85rem; color: var(--rb-muted); }
.rb-recipient-name {
    display: block;
    font-family: var(--rb-serif);
    color: var(--rb-ink-deep);
    font-size: .98rem;
    margin-bottom: 4px;
}
.rb-recipient-line { display: block; }
.rb-num { font-variant-numeric: tabular-nums; }
.rb-link-danger {
    background: none;
    border: none;
    padding: 0;
    margin-top: 8px;
    color: var(--rb-danger);
    font-size: .8rem;
    font-weight: 600;
    cursor: pointer;
}
.rb-recipients-add-title { font-size: 1.1rem; margin: 8px 0 12px; }
.rb-recipient-form { display: grid; gap: 4px; max-width: 640px; }
.rb-field { display: grid; gap: 5px; margin: 0 0 10px; }
.rb-field label {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--rb-muted);
}
.rb-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.rb-recipient-form .rb-btn { justify-self: start; margin-top: 6px; }

@media (max-width: 880px) {
    .rb-shop-layout { grid-template-columns: 1fr; }
    .rb-field-row { grid-template-columns: 1fr; }
    .rb-wc .col2-set .col-1, .rb-wc .col2-set .col-2 { width: 100%; }
}


.rb-avail { font-size: .82rem; font-weight: 600; }
.rb-avail--ok { color: #3f7a34; }
.rb-avail--order { color: var(--rb-wood); }
.rb-avail-badge {
    display: inline-block;
    margin: 6px 14px 0;
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
    border-radius: 999px;
    padding: 3px 10px;
}
.rb-avail-badge--ok { background: #e3f0e5; color: #2c6b35; }
.rb-avail-badge--order { background: #f7f2ea; color: var(--rb-wood); }

.rb-btn.is-loading {
    position: relative;
    opacity: .75;
    cursor: progress;
    padding-right: 44px;
}
.rb-btn.is-loading::after {
    content: "";
    position: absolute;
    right: 16px;
    top: 50%;
    width: 15px;
    height: 15px;
    margin-top: -8px;
    border: 2.5px solid rgba(255, 255, 255, .35);
    border-top-color: #fff;
    border-radius: 50%;
    animation: rb-spin .7s linear infinite;
}
@keyframes rb-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
    .rb-btn.is-loading::after { animation-duration: 1.6s; }
}
.rb-form-notice:focus { outline: none; }

/* --------------------------------------------------------------------------
   Wholesale: locked prices + application form
   -------------------------------------------------------------------------- */
.rb-price-locked {
    display: inline-block;
    font-size: .82rem;
    font-weight: 600;
    color: var(--rb-wood);
    background: #f7f2ea;
    border-radius: 8px;
    padding: 5px 11px;
    text-decoration: none;
    line-height: 1.35;
}
a.rb-price-locked:hover { color: var(--rb-green); }
/* Wholesale gate CTA (single product / shop loop, non-wholesale visitors) */
.rb-wholesale-gate {
    margin: 14px 0 22px;
    padding: 16px 18px;
    background: var(--rb-mint);
    border: 1px solid var(--rb-line);
    border-radius: 12px;
}
.rb-wholesale-gate p {
    margin: 0 0 12px;
    color: var(--rb-ink);
    font-size: .95rem;
    line-height: 1.5;
}
.rb-wholesale-gate .rb-wholesale-cta { margin: 0; }
.rb-aside-steps {
    margin: 0 0 12px;
    padding-left: 20px;
    font-size: .88rem;
    color: var(--rb-muted);
    display: grid;
    gap: 8px;
}
.rb-apply-form textarea {
    font: inherit;
    font-size: .9rem;
    padding: 10px 12px;
    border: 1px solid #ccd6c4;
    border-radius: 9px;
    background: #fff;
    color: var(--rb-ink);
    resize: vertical;
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.rb-footer {
    border-top: 1px solid var(--rb-line);
    padding: 26px var(--rb-gutter);
    display: flex;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    font-size: .84rem;
    color: var(--rb-faint);
}
.rb-footer-brand strong {
    display: block;
    color: var(--rb-green);
    font-family: var(--rb-serif);
    font-size: 1rem;
}
.rb-footer-list {
    display: flex;
    gap: 18px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.rb-footer-list a {
    color: var(--rb-muted);
    text-decoration: none;
    font-weight: 600;
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 880px) {
    .rb-hero { grid-template-columns: 1fr; }
    .rb-nav { width: 100%; }
    .rb-nav-list { flex-wrap: wrap; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        transition-duration: .01ms !important;
    }
}

.rb-footer-credit {
    flex-basis: 100%;
    margin-top: 6px;
    padding-top: 14px;
    border-top: 1px solid var(--rb-line);
    font-size: .76rem;
    color: var(--rb-faint);
    text-align: center;
}
.rb-footer-credit a {
    color: var(--rb-muted);
    font-weight: 600;
    text-decoration: none;
}
.rb-footer-credit a:hover { color: var(--rb-green); }

/* --------------------------------------------------------------------------
   Login / lost password (Mi cuenta, logged out)
   -------------------------------------------------------------------------- */
.rb-wc form.woocommerce-form-login,
.rb-wc form.woocommerce-ResetPassword,
.rb-wc form.lost_reset_password {
    background: var(--rb-surface);
    border: 1px solid var(--rb-line);
    border-radius: var(--rb-radius-lg);
    padding: 26px 28px;
    max-width: 460px;
    box-shadow: var(--rb-shadow);
}
.rb-wc form.woocommerce-form-login .woocommerce-form-login__rememberme {
    display: block;
    margin-bottom: 10px;
    font-size: .86rem;
    color: var(--rb-muted);
}
.rb-wc form.woocommerce-form-login .woocommerce-form-login__submit {
    width: 100%;
}
.rb-wc .woocommerce-LostPassword {
    font-size: .84rem;
    margin-top: 4px;
}

/* ==========================================================================
   Mobile refinements — hamburger nav + stacking (added 2026)
   ========================================================================== */

/* Hamburger button (hidden on desktop) */
.rb-nav-toggle {
    display: none;
    margin-left: auto;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 1px solid var(--rb-line);
    border-radius: 10px;
    cursor: pointer;
    padding: 0;
}
.rb-nav-toggle-bar,
.rb-nav-toggle-bar::before,
.rb-nav-toggle-bar::after {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--rb-ink-deep);
    border-radius: 2px;
    transition: transform .2s ease, opacity .2s ease, background .2s ease;
}
.rb-nav-toggle-bar { position: relative; }
.rb-nav-toggle-bar::before { content: ""; position: absolute; top: -7px; left: 0; }
.rb-nav-toggle-bar::after  { content: ""; position: absolute; top: 7px; left: 0; }
.rb-nav-open .rb-nav-toggle-bar { background: transparent; }
.rb-nav-open .rb-nav-toggle-bar::before { transform: translateY(7px) rotate(45deg); }
.rb-nav-open .rb-nav-toggle-bar::after  { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 880px) {
    .rb-nav-toggle { display: inline-flex; }
    .rb-header { gap: 12px; padding: 12px var(--rb-gutter); }
    .rb-logo-img { height: 46px; }

    /* Primary nav collapses into a full-width drawer under the header */
    .rb-nav {
        display: none;
        order: 3;
        flex-basis: 100%;
        width: 100%;
        margin-left: 0;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 6px 0 10px;
    }
    .rb-header.rb-nav-open .rb-nav { display: flex; }
    .rb-nav-list { flex-direction: column; gap: 0; width: 100%; }
    .rb-nav-list li { border-top: 1px solid var(--rb-line); }
    .rb-nav-list a { display: block; padding: 14px 2px; font-size: 1rem; }
    .rb-account {
        display: block;
        padding: 14px 2px;
        border-top: 1px solid var(--rb-line);
        font-size: 1rem;
    }
    .rb-cart {
        display: inline-block;
        margin: 14px 0 4px;
        padding: 11px 20px;
        font-size: .95rem;
    }
    .rb-lang { margin: 6px 0 0; align-self: flex-start; }

    /* Stack the grids that overflow on phones */
    .rb-trust { grid-template-columns: 1fr; gap: 0; }
    .rb-trust-item {
        border-right: none;
        border-bottom: 1px solid var(--rb-line);
        padding: 14px 2px;
    }
    .rb-trust-item:last-child { border-bottom: none; }
    .rb-modes { grid-template-columns: 1fr; }
    .rb-calc-row { grid-template-columns: 1fr; }
    .rb-products { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
}

@media (max-width: 560px) {
    .rb-section { padding: 26px 0 6px; }
    .rb-mode-price { font-size: 1.4rem; }
    .rb-products { grid-template-columns: 1fr 1fr; gap: 12px; }
    .rb-hero-actions { flex-direction: column; align-items: stretch; }
    .rb-hero-actions .rb-btn { text-align: center; }
}

@media (max-width: 880px) {
    /* Bigger tap targets + 16px font stops iOS from zooming on focus */
    .rb-main input[type="text"],
    .rb-main input[type="email"],
    .rb-main input[type="tel"],
    .rb-main input[type="password"],
    .rb-main input[type="number"],
    .rb-main input[type="search"],
    .rb-main input[type="url"],
    .rb-main textarea,
    .rb-main select {
        min-height: 44px;
        font-size: 16px;
    }
    .rb-main .rb-btn,
    .rb-main .button,
    .rb-main button[type="submit"] { min-height: 44px; }
}

@media (max-width: 560px) {
    /* Footer: keep the language switcher on the same row as the logo/brand
       (logo left, ES/EN right) so it doesn't take a line of its own. */
    .rb-footer { align-items: flex-start; }
    .rb-footer-brand  { order: 1; }
    .rb-lang--footer  { order: 2; margin-left: auto; align-self: flex-start; }
    .rb-footer-nav    { order: 3; flex-basis: 100%; }
    .rb-footer-credit { order: 4; }
}
