/* ============================================================
   RAS · Raffaele Bubbly Commerce — Frontend v1.1.8-editorial
   Editorial wireframe · Archivo + Space Mono · Lo-fi ink/paper
   ============================================================ */

:root {
    --rbc-paper: #f3f2ec;
    --rbc-paper-2: #eceae1;
    --rbc-ink: #1b1a16;
    --rbc-ink-2: #5d5b52;
    --rbc-ink-3: #9a988c;
    --rbc-line: #1b1a16;
    --rbc-hatch: rgba(27, 26, 22, .14);
    --rbc-acc: #9e1b32;
    --rbc-acc-soft: rgba(158, 27, 50, .14);
    --rbc-radius: 2px;
    --rbc-line-w: 1.5px;
    --rbc-container: 1280px;
    --rbc-gutter: clamp(20px, 4vw, 46px);
    --rbc-font-head: 'Archivo', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --rbc-font-body: 'Archivo', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --rbc-font-mono: 'Space Mono', ui-monospace, 'Cascadia Mono', 'SF Mono', Menlo, monospace;
    --rbc-font-note: 'Caveat', cursive;
    --rbc-ease: cubic-bezier(0.22, 1, 0.36, 1);

    /* Legacy aliases kept so existing markup keeps reading sane tokens */
    --rbc-ink-soft: var(--rbc-ink-2);
    --rbc-muted: var(--rbc-ink-2);
    --rbc-line-strong: var(--rbc-ink);
    --rbc-cream: var(--rbc-paper);
    --rbc-accent: var(--rbc-acc);
    --rbc-font-display: var(--rbc-font-head);
}

/* -- Base ---------------------------------------------------- */

html { -webkit-text-size-adjust: 100%; overflow-x: clip; max-width: 100%; }

body.rbc-front-page,
body.rbc-woo-surface,
body.rbc-custom-product-template {
    margin: 0;
    background: var(--rbc-paper);
    color: var(--rbc-ink);
    font-family: var(--rbc-font-body);
    font-size: 16px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    /* clip (non hidden) evita lo scroll orizzontale SENZA creare un
       contenitore di scroll: cosi position: sticky continua a funzionare
       (titolo/prezzo/carrello che flottano nella pagina prodotto). */
    overflow-x: clip;
    max-width: 100vw;
}

/* Border-box for our own content so paddings + max-widths behave predictably */
body.rbc-front-page .rbc-storefront,
body.rbc-front-page .rbc-storefront *,
body.rbc-front-page .rbc-storefront *::before,
body.rbc-front-page .rbc-storefront *::after,
body.rbc-front-page .rbc-header,
body.rbc-front-page .rbc-header *,
body.rbc-front-page .rbc-footer,
body.rbc-front-page .rbc-footer *,
body.rbc-front-page .rbc-topbar,
body.rbc-woo-surface .rbc-header,
body.rbc-woo-surface .rbc-header *,
body.rbc-woo-surface .rbc-footer,
body.rbc-woo-surface .rbc-footer *,
body.rbc-woo-surface .rbc-topbar,
body.rbc-custom-product-template .rbc-header,
body.rbc-custom-product-template .rbc-header *,
body.rbc-custom-product-template .rbc-footer,
body.rbc-custom-product-template .rbc-footer *,
body.rbc-custom-product-template .rbc-topbar,
body.rbc-custom-product-template .rbc-product-page,
body.rbc-custom-product-template .rbc-product-page * {
    box-sizing: border-box;
}

/* Prevent display headlines from forcing horizontal scroll on narrow viewports */
.rbc-h-xl, .rbc-display, .rbc-h-sec, .rbc-heading,
.rbc-storefront h1, .rbc-storefront h2 {
    overflow-wrap: anywhere;
    word-break: normal;
    max-width: 100%;
}

body.rbc-front-page img,
body.rbc-woo-surface img,
body.rbc-custom-product-template img { display: block; max-width: 100%; }

body.rbc-front-page a:not([class*="rbc-button"]),
body.rbc-woo-surface a:not([class*="rbc-button"]),
body.rbc-custom-product-template a:not([class*="rbc-button"]) { color: inherit; text-decoration: none; }

body.rbc-front-page button,
body.rbc-woo-surface button,
body.rbc-custom-product-template button { font-family: inherit; }

/* Block-theme reset: scorched-earth. Cover every known WP wrapper class
   used by block themes (Twenty Twenty-Four et al.) so that NO container
   above our .rbc-storefront can constrain its width or add inline
   padding. We deliberately exclude .rbc-storefront from the padding
   reset because the storefront owns the editorial gutter (further down).
   We also neutralize the WP custom properties that some themes use to
   compute root padding / content sizes. */
.rbc-front-page,
.rbc-front-page body {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

body.rbc-front-page {
    --wp--style--root--padding-left: 0px;
    --wp--style--root--padding-right: 0px;
    --wp--style--root--padding-top: 0;
    --wp--style--block-gap: 0;
    --wp--style--global--content-size: 100%;
    --wp--style--global--wide-size: 100%;
}

.rbc-front-page #page,
.rbc-front-page .site,
.rbc-front-page .site-main,
.rbc-front-page #main,
.rbc-front-page #content,
.rbc-front-page .content-area,
.rbc-front-page .site-content,
.rbc-front-page #primary,
.rbc-front-page main:not(.rbc-storefront),
.rbc-front-page article,
.rbc-front-page .wp-site-blocks,
.rbc-front-page .wp-site-blocks > *:not(.rbc-storefront),
.rbc-front-page .entry-content,
.rbc-front-page .wp-block-post-content,
.rbc-front-page .wp-block-group,
.rbc-front-page .wp-block-group.has-global-padding,
.rbc-front-page .wp-block-group__inner-container,
.rbc-front-page .is-layout-constrained,
.rbc-front-page .is-layout-flow,
.rbc-front-page .is-layout-grid,
.rbc-front-page .wp-block-template-part:not(.rbc-header),
.rbc-front-page .wp-block-cover,
.rbc-front-page .wp-block-columns,
.rbc-front-page .wp-block-column {
    max-width: none !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-inline: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-inline: 0 !important;
    overflow-x: visible;
}

.rbc-front-page .entry-content,
.rbc-front-page .wp-block-post-content {
    margin: 0 !important;
    padding: 0 !important;
}

.rbc-front-page .entry-title,
.rbc-front-page .wp-block-post-title,
.rbc-front-page .page-title,
.rbc-front-page .post-title,
.rbc-front-page header.entry-header {
    display: none !important;
}

body.rbc-front-page .wp-site-blocks,
body.rbc-front-page .wp-site-blocks > *,
body.rbc-front-page main,
body.rbc-front-page article,
body.rbc-front-page .entry-content,
body.rbc-front-page .wp-block-post-content,
body.rbc-front-page .wp-block-group {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

body header.wp-block-template-part,
body header.wp-block-template-part[data-area="header"],
body > .wp-site-blocks > header,
body > .wp-site-blocks > .wp-block-template-part--header,
body > .wp-site-blocks > .wp-block-group > header,
body .wp-site-blocks header.site-header,
body header.site-header,
body > .wp-site-blocks > .wp-block-template-part:first-of-type {
    display: none !important;
}

body .wp-site-blocks > main,
body .wp-site-blocks > .wp-block-group,
body .wp-block-group.has-global-padding,
body main > .wp-block-group,
body main > .wp-block-post-content,
body .wp-block-post-content > .wp-block-group {
    margin-top: 0 !important;
    margin-block-start: 0 !important;
    padding-top: 0 !important;
    padding-block-start: 0 !important;
}

body.rbc-front-page .wp-site-blocks > main,
body.rbc-front-page .wp-block-group.has-global-padding {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

body {
    --wp--style--root--padding-top: 0 !important;
    --wp--style--block-gap: 0 !important;
}

/* ============================================================
   PRIMITIVES — eyebrow, mono, headings, lead, tag, button, note
   ============================================================ */

.rbc-container {
    max-width: var(--rbc-container);
    margin-inline: auto;
    padding-inline: var(--rbc-gutter);
}

.rbc-kicker,
.rbc-eyebrow {
    font-family: var(--rbc-font-mono);
    font-size: 11px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--rbc-ink-2);
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0;
}

.rbc-kicker::before,
.rbc-eyebrow::before {
    content: "";
    width: 26px;
    height: var(--rbc-line-w);
    background: var(--rbc-acc);
    flex: 0 0 auto;
}

.rbc-mono-mini {
    font-family: var(--rbc-font-mono);
    font-size: 11px;
    letter-spacing: .06em;
    color: var(--rbc-ink-2);
    text-transform: uppercase;
}

.rbc-heading,
.rbc-h-sec {
    font-family: var(--rbc-font-head);
    font-weight: 800;
    font-size: clamp(28px, 4.5vw, 56px);
    line-height: .98;
    letter-spacing: -.02em;
    margin: 0;
    text-wrap: balance;
    color: var(--rbc-ink);
}

.rbc-display,
.rbc-h-xl {
    font-family: var(--rbc-font-head);
    font-weight: 800;
    font-size: clamp(38px, 12vw, 168px);
    line-height: .9;
    letter-spacing: -.03em;
    margin: 0;
    color: var(--rbc-ink);
    text-wrap: balance;
    hyphens: auto;
}

.rbc-lead {
    color: var(--rbc-ink-2);
    max-width: 54ch;
    font-size: clamp(15px, 1.5vw, 18px);
    margin: 0;
}

.rbc-note {
    font-family: var(--rbc-font-note);
    color: var(--rbc-acc);
    font-size: clamp(16px, 1.4vw, 21px);
    line-height: 1.15;
    margin: 0;
    display: inline-flex;
    gap: 6px;
    align-items: flex-start;
}

.rbc-note .rbc-note__arrow {
    font-family: var(--rbc-font-mono);
    font-size: 13px;
    opacity: .8;
    transform: translateY(2px);
}

.rbc-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--rbc-font-mono);
    font-size: 10px;
    letter-spacing: .08em;
    text-transform: uppercase;
    border: var(--rbc-line-w) solid var(--rbc-line);
    border-radius: 999px;
    padding: 4px 9px;
    color: var(--rbc-ink);
    background: transparent;
    white-space: nowrap;
}

.rbc-tag--acc {
    border-color: var(--rbc-acc);
    color: var(--rbc-acc);
}

/* Buttons */

.rbc-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-family: var(--rbc-font-mono);
    font-size: 12px;
    letter-spacing: .08em;
    text-transform: uppercase;
    border: var(--rbc-line-w) solid var(--rbc-line);
    background: var(--rbc-paper);
    color: var(--rbc-ink);
    padding: 13px 22px;
    border-radius: var(--rbc-radius);
    cursor: pointer;
    transition: transform .08s ease, background .15s ease, color .15s ease, border-color .15s ease;
    text-decoration: none;
    line-height: 1;
}

.rbc-button:hover {
    background: var(--rbc-ink);
    color: var(--rbc-paper);
}

.rbc-button:active { transform: translateY(1px); }

.rbc-button .rbc-button__icon {
    display: inline-block;
    flex-shrink: 0;
    transition: transform .2s var(--rbc-ease);
}

.rbc-button:hover .rbc-button__icon { transform: translateX(3px); }

.rbc-button--acc {
    background: var(--rbc-acc);
    border-color: var(--rbc-acc);
    color: #fff;
}

.rbc-button--acc:hover {
    background: var(--rbc-ink);
    border-color: var(--rbc-ink);
    color: var(--rbc-paper);
}

.rbc-button--lg {
    padding: 17px 30px;
    font-size: 13px;
}

.rbc-button--ghost {
    background: transparent;
}

.rbc-button--ghost:hover {
    background: var(--rbc-ink);
    color: var(--rbc-paper);
}

.rbc-button--invert {
    background: var(--rbc-ink);
    border-color: var(--rbc-ink);
    color: var(--rbc-paper);
}

.rbc-button--invert:hover {
    background: var(--rbc-acc);
    border-color: var(--rbc-acc);
    color: #fff;
}

.rbc-text-link {
    font-family: var(--rbc-font-mono);
    font-size: 12px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--rbc-ink);
    border-bottom: var(--rbc-line-w) solid transparent;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding-bottom: 2px;
    transition: border-color .15s ease, color .15s ease;
}

.rbc-text-link:hover {
    color: var(--rbc-acc);
    border-bottom-color: var(--rbc-acc);
}

/* Placeholder / hatched photo box */

.rbc-ph {
    position: relative;
    overflow: hidden;
    background: var(--rbc-paper-2);
    border: var(--rbc-line-w) solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    background-image: repeating-linear-gradient(45deg, var(--rbc-hatch) 0 1px, transparent 1px 11px);
    display: flex;
    align-items: flex-end;
}

.rbc-ph img,
.rbc-ph picture,
.rbc-ph picture img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    position: absolute;
    inset: 0;
    background: var(--rbc-paper-2);
}

.rbc-ph--photo { background-image: none; }

/* ============================================================
   ANNOUNCEMENT TOPBAR
   ============================================================ */

.rbc-topbar {
    background: var(--rbc-acc);
    color: #fff;
    text-align: center;
    font-family: var(--rbc-font-mono);
    font-size: 11px;
    letter-spacing: .12em;
    text-transform: uppercase;
    padding: 7px 12px;
}

/* ============================================================
   STICKY HEADER
   ============================================================ */

.rbc-header {
    position: sticky;
    top: 0;
    z-index: 100;
    width: 100%;
    background: var(--rbc-paper);
    border-bottom: var(--rbc-line-w) solid var(--rbc-line);
    font-family: var(--rbc-font-body);
}

.rbc-header__inner {
    display: flex;
    align-items: center;
    gap: 26px;
    height: 64px;
    max-width: var(--rbc-container);
    margin-inline: auto;
    padding-inline: var(--rbc-gutter);
}

.rbc-header__logo,
#rbc-header-logo {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    font-family: var(--rbc-font-head);
    font-weight: 800;
    font-size: 23px;
    letter-spacing: .16em;
    color: var(--rbc-ink);
    text-decoration: none;
}

/* Hide image logo: editorial brandmark is text-based "RAS" */
.rbc-header__logo img,
#rbc-header-logo img,
body .rbc-header #rbc-header-logo img,
body.rbc-woo-surface #rbc-header-logo img,
body.rbc-front-page #rbc-header-logo img {
    display: none !important;
}

.rbc-header__logo::after,
#rbc-header-logo::after {
    content: "RAS";
}

.rbc-header__nav {
    flex: 1 1 auto;
    display: flex;
    justify-content: center;
}

.rbc-header__menu {
    display: flex;
    align-items: center;
    gap: 20px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.rbc-header__menu li { margin: 0; padding: 0; }

.rbc-header__menu a {
    font-family: var(--rbc-font-mono);
    font-size: 12px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--rbc-ink-2);
    padding: 4px 0;
    border-bottom: var(--rbc-line-w) solid transparent;
    transition: color .15s ease, border-color .15s ease;
    text-decoration: none;
}

.rbc-header__menu a:hover,
.rbc-header__menu a.is-active {
    color: var(--rbc-ink);
    border-bottom-color: var(--rbc-acc);
}

.rbc-header__actions {
    display: flex;
    gap: 16px;
    align-items: center;
    flex: 0 0 auto;
}

.rbc-header__icon {
    font-family: var(--rbc-font-mono);
    font-size: 12px;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--rbc-ink);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 2px;
    border: 0;
    background: transparent;
    text-decoration: none;
    position: relative;
}

.rbc-header__icon svg { display: none; }

.rbc-header__icon[aria-label="Account"]::after { content: "Account"; }
.rbc-header__icon[aria-label="Carrello"]::after { content: "Cart"; }

.rbc-header__icon:hover { color: var(--rbc-acc); }

.rbc-header__badge {
    background: var(--rbc-ink);
    color: var(--rbc-paper);
    border-radius: 999px;
    font-family: var(--rbc-font-mono);
    font-size: 10px;
    padding: 1px 6px;
    margin-left: 2px;
}

.rbc-header__badge[hidden] { display: none; }

.rbc-header__toggle {
    display: none;
    appearance: none;
    border: 0;
    background: transparent;
    font-family: var(--rbc-font-mono);
    font-size: 19px;
    line-height: 1;
    cursor: pointer;
    padding: 2px 4px;
    color: var(--rbc-ink);
}

.rbc-header__toggle svg { display: none; }
.rbc-header__toggle::before { content: "\2630"; }
.rbc-header__toggle[aria-expanded="true"]::before { content: "\2715"; }

.rbc-header__drawer {
    display: none;
    background: var(--rbc-paper);
    border-bottom: var(--rbc-line-w) solid var(--rbc-line);
}

.rbc-header__drawer.is-open {
    display: block;
    padding: 6px var(--rbc-gutter) 14px;
}

.rbc-header__drawer-menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.rbc-header__drawer-menu a {
    font-family: var(--rbc-font-mono);
    font-size: 13px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--rbc-ink);
    padding: 12px 0;
    border-bottom: 1px solid var(--rbc-paper-2);
    display: block;
    text-decoration: none;
}

.rbc-header__drawer-menu li:last-child a { border-bottom: 0; }

@media (max-width: 900px) {
    .rbc-header__nav { display: none; }
    .rbc-header__toggle { display: inline-flex; }
}

@media (max-width: 600px) {
    .rbc-header__icon[aria-label="Account"]::after { content: ""; }
    .rbc-header__icon[aria-label="Account"]::before { content: "Acc."; }
}

/* ============================================================
   STOREFRONT (front page)
   ============================================================ */

.rbc-storefront {
    display: block;
    background: var(--rbc-paper);
    color: var(--rbc-ink);
    padding-bottom: 0;
}

/* ============================================================
   Hero editorial (v1.1.5)
   - WITH media (video or image): full-bleed background, dark
     scrim, title + meta + CTA overlaid in white.
   - WITHOUT media: original light editorial look, ink on paper.
   ============================================================ */

.rbc-hero {
    position: relative;
    width: 100%;
    box-sizing: border-box;
}

/* === No-media variant: keeps the original lo-fi editorial layout === */
.rbc-hero--plain {
    padding: 40px 0 0;
    background: var(--rbc-paper);
    color: var(--rbc-ink);
}

.rbc-hero--plain .rbc-hero__bg { display: none; }

.rbc-hero--plain .rbc-hero__content {
    display: flex;
    flex-direction: column;
    gap: 18px;
    max-width: var(--rbc-container);
    margin-inline: auto;
}

.rbc-hero--plain .rbc-hero__lead {
    max-width: 50ch;
    font-size: clamp(15px, 1.5vw, 18px);
    color: var(--rbc-ink-2);
}

.rbc-hero--plain .rbc-hero__scroll {
    margin-top: 8px;
    align-self: flex-start;
}

/* === With-media variant: full-bleed video/image as background === */
.rbc-hero--has-media {
    /* Break out of the storefront gutter padding symmetrically.
       The explicit width compensates for both negative margins so the
       box is NOT over-constrained (otherwise LTR drops the right margin
       and leaves a white strip on the right). */
    width: calc(100% + var(--rbc-gutter) * 2);
    margin-inline: calc(var(--rbc-gutter) * -1);
    min-height: clamp(560px, 86vh, 880px);
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    color: #fff;
    background: var(--rbc-ink);
}

.rbc-hero--has-media .rbc-hero__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    background: var(--rbc-ink);
    overflow: hidden;
}

.rbc-hero--has-media .rbc-hero__bg video,
.rbc-hero--has-media .rbc-hero__bg img,
.rbc-hero--has-media .rbc-hero__video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    position: absolute;
    inset: 0;
}

.rbc-hero--has-media .rbc-hero__scrim {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,.15) 35%, rgba(0,0,0,.65) 100%),
        linear-gradient(90deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,0) 50%);
    pointer-events: none;
    z-index: 1;
}

.rbc-hero--has-media .rbc-hero__content {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: var(--rbc-container);
    margin-inline: auto;
    padding: clamp(50px, 8vw, 90px) var(--rbc-gutter) clamp(34px, 5vw, 60px);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: clamp(16px, 2.5vw, 28px);
}

.rbc-hero--has-media .rbc-hero__head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 14px;
    flex-wrap: wrap;
}

.rbc-hero--has-media .rbc-hero__meta {
    display: flex;
    gap: 22px;
    flex-wrap: wrap;
}

.rbc-hero--has-media .rbc-eyebrow,
.rbc-hero--has-media .rbc-mono-mini {
    color: rgba(255,255,255,.82);
}

.rbc-hero--has-media .rbc-eyebrow::before {
    background: var(--rbc-acc);
}

.rbc-hero--has-media .rbc-h-xl {
    color: #fff;
    font-size: clamp(40px, 11vw, 152px);
    line-height: .92;
    text-wrap: balance;
    margin: 0;
    text-shadow: 0 2px 30px rgba(0,0,0,.25);
}

.rbc-hero--has-media .rbc-hero__lead {
    color: rgba(255,255,255,.88);
    max-width: 50ch;
    font-size: clamp(14px, 1.4vw, 17px);
    margin: 0;
}

.rbc-hero--has-media .rbc-hero__actions {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-top: 4px;
}

.rbc-hero--has-media .rbc-hero__actions .rbc-button {
    background: #fff;
    border-color: #fff;
    color: var(--rbc-ink);
}

.rbc-hero--has-media .rbc-hero__actions .rbc-button:hover {
    background: var(--rbc-ink);
    border-color: var(--rbc-ink);
    color: #fff;
}

.rbc-hero--has-media .rbc-hero__actions .rbc-button--acc {
    background: var(--rbc-acc);
    border-color: var(--rbc-acc);
    color: #fff;
}

.rbc-hero--has-media .rbc-hero__actions .rbc-button--acc:hover {
    background: #fff;
    border-color: #fff;
    color: var(--rbc-ink);
}

.rbc-hero--has-media .rbc-hero__scroll {
    margin-top: 6px;
    align-self: flex-start;
    color: rgba(255,255,255,.72);
}

@media (max-width: 768px) {
    .rbc-hero--has-media {
        min-height: clamp(520px, 90vh, 760px);
    }
    .rbc-hero--has-media .rbc-hero__content {
        gap: 14px;
    }
    .rbc-hero--has-media .rbc-hero__head {
        align-items: flex-start;
    }
    .rbc-hero--has-media .rbc-hero__actions .rbc-button {
        width: 100%;
        justify-content: center;
    }
}

/* -- Drop strip (story rule) ------------------------------------ */

.rbc-drop-strip {
    max-width: var(--rbc-container);
    margin: clamp(60px, 9vw, 110px) auto 0;
    padding: 0 var(--rbc-gutter);
}

.rbc-drop-strip__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0;
    border-top: var(--rbc-line-w) solid var(--rbc-line);
    border-bottom: var(--rbc-line-w) solid var(--rbc-line);
}

.rbc-drop-strip__cell {
    padding: 26px 22px;
    border-right: var(--rbc-line-w) solid var(--rbc-line);
}

.rbc-drop-strip__cell:last-child { border-right: 0; }

.rbc-drop-strip__cell h5 {
    margin: 0 0 8px;
    font-family: var(--rbc-font-mono);
    font-size: 12px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--rbc-ink);
}

.rbc-drop-strip__cell p {
    margin: 0;
    color: var(--rbc-ink-2);
    font-size: 14px;
    line-height: 1.5;
}

@media (max-width: 760px) {
    .rbc-drop-strip__grid { grid-template-columns: 1fr; }
    .rbc-drop-strip__cell { border-right: 0; border-bottom: var(--rbc-line-w) solid var(--rbc-line); }
    .rbc-drop-strip__cell:last-child { border-bottom: 0; }
}

/* -- Section heading -------------------------------------------- */

.rbc-section-heading,
.rbc-strip-heading,
.rbc-sec-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 18px;
    flex-wrap: wrap;
    margin: clamp(54px, 8vw, 96px) 0 28px;
}

.rbc-section-heading .rbc-heading,
.rbc-strip-heading .rbc-heading,
.rbc-sec-head .rbc-heading {
    margin-top: 14px;
    max-width: 22ch;
}

.rbc-strip-heading > div,
.rbc-section-heading > div,
.rbc-sec-head > div {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* -- Editorial strip ------------------------------------------- */

.rbc-editorial {
    background: var(--rbc-paper);
}

.rbc-editorial__inner {
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
    padding: clamp(40px, 6vw, 80px) 0 0;
}

@media (min-width: 1024px) {
    .rbc-editorial__inner {
        grid-template-columns: 1fr 1fr;
        gap: 60px;
        align-items: end;
    }
}

.rbc-editorial__head .rbc-heading {
    margin-top: 14px;
}

.rbc-editorial__body p {
    margin: 0;
    color: var(--rbc-ink-2);
    font-size: clamp(15px, 1.4vw, 17px);
    line-height: 1.65;
}

/* -- Category strip / quilt ------------------------------------ */

.rbc-category-strip {
    background: var(--rbc-paper);
    padding: 0;
}

.rbc-category-grid {
    display: grid;
    /* Due sezioni: due card che riempiono il riquadro (niente celle vuote) */
    grid-template-columns: repeat(2, 1fr);
    gap: 0;
    border: var(--rbc-line-w) solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    overflow: hidden;
}

.rbc-category-card {
    position: relative;
    border-right: var(--rbc-line-w) solid var(--rbc-line);
    border-bottom: var(--rbc-line-w) solid var(--rbc-line);
    aspect-ratio: 1;
    overflow: hidden;
    background: var(--rbc-paper-2);
    background-image: repeating-linear-gradient(45deg, var(--rbc-hatch) 0 1px, transparent 1px 11px);
    cursor: pointer;
    display: block;
    text-decoration: none;
    color: var(--rbc-ink);
    transition: none;
}

.rbc-category-card:nth-child(2n) { border-right: 0; }
.rbc-category-card:nth-last-child(-n+2) { border-bottom: 0; }

.rbc-category-card:hover { transform: none; }

.rbc-category-card__index {
    display: none;
}

.rbc-category-card__label {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    padding: 14px;
    font-family: var(--rbc-font-head);
    font-weight: 800;
    font-size: clamp(16px, 1.6vw, 22px);
    text-transform: uppercase;
    letter-spacing: .02em;
    color: var(--rbc-ink);
    background: linear-gradient(to top, var(--rbc-paper) 5%, transparent);
    transition: color .15s ease;
}

.rbc-category-card:hover .rbc-category-card__label { color: var(--rbc-acc); }

.rbc-category-card__desc {
    position: absolute;
    left: 14px;
    right: 14px;
    top: 14px;
    z-index: 2;
    font-family: var(--rbc-font-mono);
    font-size: 10px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--rbc-ink-2);
    background: var(--rbc-paper);
    border: 1px solid var(--rbc-line);
    padding: 3px 7px;
    border-radius: 2px;
    width: max-content;
    max-width: calc(100% - 28px);
    opacity: 0;
    transition: opacity .2s ease;
}

.rbc-category-card:hover .rbc-category-card__desc { opacity: 1; }

/* Category card image (filled by product thumbnail in PHP, or hatched ph) */
.rbc-category-card img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
}

@media (max-width: 760px) {
    .rbc-category-grid { grid-template-columns: repeat(2, 1fr); }
    .rbc-category-card:nth-child(4n) { border-right: var(--rbc-line-w) solid var(--rbc-line); }
    .rbc-category-card:nth-child(2n) { border-right: 0; }
    .rbc-category-card:nth-last-child(-n+4) { border-bottom: var(--rbc-line-w) solid var(--rbc-line); }
    .rbc-category-card:nth-last-child(-n+2) { border-bottom: 0; }
}

/* -- Featured products grid ------------------------------------ */

.rbc-products {
    padding: 0;
}

.rbc-product-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(14px, 2vw, 28px);
}

@media (max-width: 900px) {
    .rbc-product-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 560px) {
    .rbc-product-grid { grid-template-columns: 1fr; }
}

.rbc-product-card {
    cursor: pointer;
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: transparent;
    border: 0;
    box-shadow: none;
    border-radius: 0;
    padding: 0;
}

.rbc-product-card:hover { transform: none; }

.rbc-product-card__image {
    position: relative;
    overflow: hidden;
    background: var(--rbc-paper-2);
    border: var(--rbc-line-w) solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    aspect-ratio: 4/5;
    display: block;
    transition: transform .2s ease;
}

.rbc-product-card:hover .rbc-product-card__image { transform: translateY(-3px); }

.rbc-product-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: none;
}

.rbc-product-card:hover .rbc-product-card__image img { transform: none; }

.rbc-product-card__tag {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 2;
    font-family: var(--rbc-font-mono);
    font-size: 10px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--rbc-acc);
    background: var(--rbc-paper);
    border: var(--rbc-line-w) solid var(--rbc-acc);
    border-radius: 999px;
    padding: 4px 9px;
}

.rbc-product-card__body {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 0;
}

.rbc-product-card__title {
    font-family: var(--rbc-font-head);
    font-weight: 700;
    font-size: 16px;
    letter-spacing: .01em;
    color: var(--rbc-ink);
    margin: 0;
    line-height: 1.25;
}

.rbc-product-card__title a {
    color: inherit;
    text-decoration: none;
}

.rbc-product-card__title a:hover { color: var(--rbc-acc); }

.rbc-product-card__meta {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 10px;
}

.rbc-product-card__price {
    font-family: var(--rbc-font-mono);
    font-size: 13px;
    color: var(--rbc-ink);
    white-space: nowrap;
}

.rbc-product-card__price .woocommerce-Price-amount,
.rbc-product-card__price bdi,
.rbc-product-card__price .woocommerce-Price-currencySymbol {
    font-family: inherit;
    font-size: inherit;
    color: inherit;
}

.rbc-product-card__cta,
.rbc-loop-cta {
    font-family: var(--rbc-font-mono);
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--rbc-ink);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    text-decoration: none;
    border-bottom: var(--rbc-line-w) solid transparent;
    padding-bottom: 2px;
    transition: color .15s ease, border-color .15s ease;
}

.rbc-product-card__cta:hover,
.rbc-loop-cta:hover {
    color: var(--rbc-acc);
    border-bottom-color: var(--rbc-acc);
}

.rbc-loop-cta svg { display: inline-block; flex-shrink: 0; }

/* -- Service band / cards -------------------------------------- */

.rbc-service-band {
    padding: 0;
}

.rbc-service-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0;
    border-top: var(--rbc-line-w) solid var(--rbc-line);
    border-bottom: var(--rbc-line-w) solid var(--rbc-line);
    margin-top: clamp(60px, 9vw, 110px);
}

@media (max-width: 760px) {
    .rbc-service-grid { grid-template-columns: 1fr; }
}

.rbc-storefront .rbc-service-card,
.rbc-service-card {
    padding: 28px 24px;
    border-right: var(--rbc-line-w) solid var(--rbc-line);
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rbc-service-grid > .rbc-service-card:last-child { border-right: 0; }

@media (max-width: 760px) {
    .rbc-storefront .rbc-service-card,
    .rbc-service-card {
        border-right: 0;
        border-bottom: var(--rbc-line-w) solid var(--rbc-line);
    }
    .rbc-service-grid > .rbc-service-card:last-child { border-bottom: 0; }
}

.rbc-service-card:hover { transform: none; }

.rbc-service-card__num {
    font-family: var(--rbc-font-mono);
    font-size: 11px;
    letter-spacing: .12em;
    color: var(--rbc-acc);
    text-transform: uppercase;
}

.rbc-service-card__title {
    margin: 0;
    font-family: var(--rbc-font-head);
    font-weight: 800;
    font-size: 18px;
    letter-spacing: -.005em;
    line-height: 1.2;
    color: var(--rbc-ink);
}

.rbc-storefront .rbc-service-card .rbc-service-card__text,
.rbc-service-card__text {
    margin: 0;
    color: var(--rbc-ink-2);
    font-size: 14px;
    line-height: 1.55;
}

/* -- Closing note ---------------------------------------------- */

.rbc-closing-note {
    padding: 0;
    margin-top: clamp(60px, 9vw, 110px);
}

.rbc-closing-note__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
    padding: 36px 0;
    border-top: var(--rbc-line-w) solid var(--rbc-line);
}

.rbc-closing-note__text {
    font-family: var(--rbc-font-head);
    font-weight: 700;
    font-size: clamp(20px, 2.6vw, 30px);
    line-height: 1.2;
    max-width: 38ch;
    color: var(--rbc-ink);
    margin: 0;
}

.rbc-closing-note .rbc-button--invert { flex: 0 0 auto; }

/* ============================================================
   SHOP & WOOCOMMERCE pages
   ============================================================ */

.rbc-shop-intro {
    background: var(--rbc-paper);
    padding: clamp(40px, 6vw, 80px) 0 clamp(20px, 3vw, 40px);
    border-bottom: var(--rbc-line-w) solid var(--rbc-line);
}

.rbc-shop-intro .rbc-container {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.rbc-shop-intro h1.rbc-display {
    font-size: clamp(40px, 7vw, 96px);
    margin: 0;
}

.rbc-shop-intro p.rbc-lead { max-width: 50rem; margin: 0; }

.rbc-checkout-note {
    background: var(--rbc-acc-soft);
    border: var(--rbc-line-w) solid var(--rbc-acc);
    padding: 14px 18px;
    margin: 0 0 24px;
    font-family: var(--rbc-font-mono);
    font-size: 12px;
    letter-spacing: .04em;
    color: var(--rbc-ink);
    border-radius: var(--rbc-radius);
}

.rbc-checkout-note strong { color: var(--rbc-acc); font-weight: 700; }

/* ============================================================
   PAGINE ELENCO (Shop / Made to Order / Coordinati):
   solo il nostro intro (titolo + sottotitolo), header del tema
   nascosto, filtri nascosti, niente spazio bianco extra.
   Tutto agganciato a body.rbc-shop-surface (vedi body_classes).
   ============================================================ */

/* Nascondi l'header d'archivio del tema (titolo doppio + descrizione +
   eventuale min-height/padding che genera lo spazio bianco). Il nostro
   .rbc-shop-intro lo sostituisce. */
body.rbc-shop-surface .woocommerce-products-header,
body.rbc-shop-surface .woocommerce-products-header__title,
body.rbc-shop-surface .page-title,
body.rbc-shop-surface .term-description,
body.rbc-shop-surface .woocommerce-archive-description,
body.rbc-shop-surface header.entry-header,
body.rbc-shop-surface .wp-block-post-title,
body.rbc-shop-surface .wp-block-term-description,
body.rbc-shop-surface .wp-block-query-title {
    display: none !important;
}

/* Nascondi conteggio risultati + ordinamento (versioni classica e a blocchi) */
body.rbc-shop-surface .woocommerce-result-count,
body.rbc-shop-surface .woocommerce-ordering,
body.rbc-shop-surface form.woocommerce-ordering,
body.rbc-shop-surface .wc-block-product-results-count,
body.rbc-shop-surface .wc-block-catalog-sorting,
body.rbc-shop-surface .wc-block-product-sort-select,
body.rbc-shop-surface .wp-block-woocommerce-catalog-sorting,
body.rbc-shop-surface .wp-block-woocommerce-product-results-count {
    display: none !important;
}

/* Comprimi la spaziatura verticale dei wrapper del tema sulle pagine elenco */
body.rbc-shop-surface .woocommerce,
body.rbc-shop-surface ul.products,
body.rbc-shop-surface .wp-block-woocommerce-product-template,
body.rbc-shop-surface .wc-block-product-template,
body.rbc-shop-surface .wp-block-query {
    margin-top: 0 !important;
}

/* CAUSA PRINCIPALE dello spazio bianco (tema Twenty Twenty-Five, archivio a
   blocchi): il <main class="wp-block-group has-global-padding is-layout-
   constrained"> impila i figli (breadcrumb, titolo, descrizione, store-notices,
   barra ordinamento, product-collection) con il "block gap" e ha padding
   verticale. Interveniamo in modo CHIRURGICO: solo padding del main e margini
   dei suoi FIGLI DIRETTI -> non tocchiamo il gap interno della griglia prodotti.
   Tutto scoped a body.rbc-shop-surface (solo Shop / Made to Order / Coordinati). */
body.rbc-shop-surface main.wp-block-group,
body.rbc-shop-surface .wp-site-blocks > main {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

/* Azzera SOLO il block gap tra i figli diretti del main (non i nipoti:
   la griglia prodotti mantiene il suo gap). Alta specificita' + !important
   per battere le regole :where() del tema. */
body.rbc-shop-surface main > * {
    margin-block-start: 0 !important;
    margin-top: 0 !important;
}

/* Il contenitore della collezione prodotti parte subito (no padding/margine
   sopra), ma il gap INTERNO della griglia resta intatto. */
body.rbc-shop-surface .wp-block-woocommerce-product-collection,
body.rbc-shop-surface [data-block-name="woocommerce/product-collection"] {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Blocco "store notices" vuoto (riserva spazio nell'archivio a blocchi) */
body.rbc-shop-surface .wc-block-store-notices:not(:has(.woocommerce-message)):not(:has(.woocommerce-error)):not(:has(.woocommerce-info)),
body.rbc-shop-surface .woocommerce-notices-wrapper:empty {
    display: none !important;
}

/* La barra conteggio + ordinamento e' un gruppo flex: nascondila del tutto
   (i suoi contenuti sono gia' nascosti sopra). */
body.rbc-shop-surface .wp-block-group.is-content-justification-space-between:has(.wp-block-woocommerce-catalog-sorting),
body.rbc-shop-surface .wp-block-group.is-content-justification-space-between:has(.wp-block-woocommerce-product-results-count) {
    display: none !important;
}

/* Il nostro intro elenco: stesso stile in tutte e 3 le sezioni */
.rbc-shop-intro {
    margin-top: 0;
}

/* WooCommerce shop loop */

.rbc-woo-surface ul.products {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(14px, 2vw, 28px);
    list-style: none;
    margin: 0;
    padding: 0;
}

@media (max-width: 900px) {
    .rbc-woo-surface ul.products { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 560px) {
    .rbc-woo-surface ul.products { grid-template-columns: 1fr; }
}

.rbc-woo-surface ul.products li.product {
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
    border-radius: 0;
    width: auto !important;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rbc-woo-surface ul.products li.product:hover { transform: none; }

.rbc-woo-surface ul.products li.product a img {
    width: 100%;
    aspect-ratio: 4/5;
    object-fit: cover;
    border: var(--rbc-line-w) solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    background: var(--rbc-paper-2);
    margin: 0 0 8px;
}

.rbc-woo-surface ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--rbc-font-head);
    font-weight: 700;
    font-size: 16px;
    color: var(--rbc-ink);
    padding: 0;
    margin: 0;
}

.rbc-woo-surface ul.products li.product .price {
    font-family: var(--rbc-font-mono);
    font-size: 13px;
    color: var(--rbc-ink);
    margin: 0;
}

.rbc-woo-surface ul.products li.product .price del { opacity: .5; margin-right: 6px; }
.rbc-woo-surface ul.products li.product .price ins { text-decoration: none; color: var(--rbc-acc); }

.rbc-woo-surface ul.products li.product .rbc-loop-cta,
.rbc-woo-surface ul.products li.product a.added_to_cart {
    align-self: flex-start;
    margin-top: 4px;
}

/* Buttons that come from WooCommerce default classes — coerce to our look */

.rbc-woo-surface a.button,
.rbc-woo-surface button.button,
.rbc-woo-surface input[type="submit"].button,
.rbc-woo-surface .woocommerce-button {
    font-family: var(--rbc-font-mono);
    font-size: 12px;
    letter-spacing: .08em;
    text-transform: uppercase;
    border: var(--rbc-line-w) solid var(--rbc-line);
    background: var(--rbc-paper);
    color: var(--rbc-ink);
    padding: 13px 22px;
    border-radius: var(--rbc-radius);
    cursor: pointer;
    transition: transform .08s ease, background .15s ease, color .15s ease;
    box-shadow: none;
    text-decoration: none;
    line-height: 1;
}

.rbc-woo-surface a.button:hover,
.rbc-woo-surface button.button:hover,
.rbc-woo-surface input[type="submit"].button:hover,
.rbc-woo-surface .woocommerce-button:hover {
    background: var(--rbc-ink);
    color: var(--rbc-paper);
}

.rbc-woo-surface a.button.alt,
.rbc-woo-surface button.button.alt,
.rbc-woo-surface input[type="submit"].button.alt {
    background: var(--rbc-acc);
    border-color: var(--rbc-acc);
    color: #fff;
}

/* Forms (cart, checkout, account) */

.rbc-woo-surface input[type="text"],
.rbc-woo-surface input[type="email"],
.rbc-woo-surface input[type="tel"],
.rbc-woo-surface input[type="number"],
.rbc-woo-surface input[type="password"],
.rbc-woo-surface input[type="search"],
.rbc-woo-surface textarea,
.rbc-woo-surface select,
.rbc-woo-surface .select2-container--default .select2-selection--single {
    font-family: var(--rbc-font-body);
    font-size: 14px;
    background: var(--rbc-paper);
    color: var(--rbc-ink);
    border: var(--rbc-line-w) solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    padding: 11px 14px;
    line-height: 1.4;
}

.rbc-woo-surface input:focus,
.rbc-woo-surface textarea:focus,
.rbc-woo-surface select:focus {
    outline: none;
    border-color: var(--rbc-acc);
}

.rbc-woo-surface label {
    font-family: var(--rbc-font-mono);
    font-size: 11px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--rbc-ink-2);
}

/* Tables (cart, order summary) */

.rbc-woo-surface table.shop_table {
    border: var(--rbc-line-w) solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    border-collapse: separate;
    border-spacing: 0;
    width: 100%;
    background: var(--rbc-paper);
}

.rbc-woo-surface table.shop_table th,
.rbc-woo-surface table.shop_table td {
    border-bottom: 1px solid var(--rbc-paper-2);
    padding: 14px 16px;
    font-family: var(--rbc-font-body);
    font-size: 14px;
    color: var(--rbc-ink);
}

.rbc-woo-surface table.shop_table th {
    font-family: var(--rbc-font-mono);
    font-size: 11px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--rbc-ink-2);
    background: var(--rbc-paper-2);
}

.rbc-woo-surface .woocommerce-MyAccount-navigation ul {
    list-style: none;
    padding: 0;
    margin: 0;
    border: var(--rbc-line-w) solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    overflow: hidden;
}

.rbc-woo-surface .woocommerce-MyAccount-navigation li {
    border-bottom: 1px solid var(--rbc-paper-2);
}

.rbc-woo-surface .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }

.rbc-woo-surface .woocommerce-MyAccount-navigation a {
    display: block;
    padding: 12px 16px;
    font-family: var(--rbc-font-mono);
    font-size: 12px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--rbc-ink);
}

.rbc-woo-surface .woocommerce-MyAccount-navigation li.is-active a,
.rbc-woo-surface .woocommerce-MyAccount-navigation a:hover {
    background: var(--rbc-ink);
    color: var(--rbc-paper);
}

/* Wrap shop/cart/account content in container */

.rbc-woo-surface .woocommerce,
.rbc-woo-surface .woocommerce-page main .woocommerce {
    max-width: var(--rbc-container);
    margin: 0 auto;
    padding: clamp(30px, 4vw, 60px) var(--rbc-gutter);
}

/* ============================================================
   SINGLE PRODUCT page (custom template)
   ============================================================ */

body.rbc-custom-product-template {
    background: var(--rbc-paper);
    color: var(--rbc-ink);
}

.rbc-product-page {
    max-width: var(--rbc-container);
    margin: 0 auto;
    padding: clamp(24px, 4vw, 56px) var(--rbc-gutter) clamp(40px, 6vw, 90px);
}

.rbc-product-breadcrumb-wrap {
    margin-bottom: 28px;
    padding-bottom: 16px;
    border-bottom: var(--rbc-line-w) solid var(--rbc-line);
}

.rbc-product-breadcrumb-wrap .woocommerce-breadcrumb {
    font-family: var(--rbc-font-mono);
    font-size: 11px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--rbc-ink-2);
}

.rbc-product-breadcrumb-wrap .woocommerce-breadcrumb a {
    color: var(--rbc-ink-2);
    border-bottom: 1px dotted var(--rbc-ink-3);
}

.rbc-product-breadcrumb-wrap .woocommerce-breadcrumb a:hover {
    color: var(--rbc-acc);
    border-bottom-color: var(--rbc-acc);
}

body.single-product .entry-title,
body.single-product .wp-block-post-title,
body.single-product header.entry-header {
    display: none !important;
}

body.single-product .related,
body.single-product .related.products,
body.single-product section.related,
body.single-product .upsells,
body.single-product .upsells.products,
body.single-product section.up-sells,
body.single-product .cross-sells,
body.single-product .crosssells,
body.single-product [class*="related"],
body.single-product [class*="upsell"],
body.single-product [class*="crosssell"],
body.single-product .woocommerce-tabs {
    display: none !important;
}

body.single-product div.product,
body.rbc-woo-surface.single-product div.product,
body.rbc-woo-surface div.product.product {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: clamp(28px, 4vw, 60px);
    max-width: none;
    padding: 0;
}

@media (max-width: 900px) {
    body.single-product div.product,
    body.rbc-woo-surface.single-product div.product { grid-template-columns: 1fr; }
}

body.single-product div.product::before,
body.single-product div.product::after { content: none !important; display: none; }

body.single-product div.product .woocommerce-product-gallery {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
    opacity: 1 !important;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

body.single-product div.product .woocommerce-product-gallery .flex-viewport,
body.single-product div.product .woocommerce-product-gallery > figure,
body.single-product div.product .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex;
    flex-direction: column;
    gap: 10px;
    float: none !important;
}

body.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__image,
body.single-product div.product .woocommerce-product-gallery > figure > .woocommerce-product-gallery__image {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: var(--rbc-line-w) solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    overflow: hidden;
    background: var(--rbc-paper-2);
}

body.single-product div.product .woocommerce-product-gallery img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
    aspect-ratio: 4/5;
    object-fit: cover;
}

body.single-product div.product .woocommerce-product-gallery .flex-control-thumbs {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

body.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li {
    list-style: none !important;
    width: auto !important;
    margin: 0 !important;
}

body.single-product div.product .woocommerce-product-gallery .flex-control-thumbs img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border: var(--rbc-line-w) solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    opacity: .55;
    transition: opacity .15s ease;
    cursor: pointer;
}

body.single-product div.product .woocommerce-product-gallery .flex-control-thumbs img.flex-active,
body.single-product div.product .woocommerce-product-gallery .flex-control-thumbs img:hover {
    opacity: 1;
}

body.single-product div.product .woocommerce-product-gallery.woocommerce-product-gallery--without-images,
body.single-product div.product .woocommerce-product-gallery:not(.woocommerce-product-gallery--with-images) {
    display: none !important;
}

body.single-product .woocommerce-product-gallery__trigger { display: none !important; }

body.single-product div.product .summary,
body.single-product div.product .entry-summary {
    margin: 0 !important;
    padding: 0;
    width: 100% !important;
    float: none !important;
    display: flex;
    flex-direction: column;
    gap: 22px;
}

/* Desktop: la colonna testo resta visibile (flotta) mentre si scorrono
   le immagini del prodotto, allineata in alto e agganciata sotto l'header. */
@media (min-width: 901px) {
    body.single-product div.product .summary,
    body.single-product div.product .entry-summary {
        position: sticky;
        top: 84px;
        align-self: start;
    }
}

.rbc-product-brand {
    font-family: var(--rbc-font-mono);
    font-size: 11px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--rbc-ink-2);
    margin: 0;
}

.rbc-product-brand a {
    color: var(--rbc-acc);
    text-decoration: none;
    border-bottom: var(--rbc-line-w) solid var(--rbc-acc);
    padding-bottom: 1px;
}

body.single-product div.product .product_title {
    font-family: var(--rbc-font-head);
    font-weight: 800;
    font-size: clamp(36px, 5vw, 64px);
    line-height: .98;
    letter-spacing: -.02em;
    color: var(--rbc-ink);
    margin: 0;
}

body.single-product div.product p.price,
body.single-product div.product .summary > .price,
body.single-product div.product span.price {
    font-family: var(--rbc-font-mono);
    font-size: 16px;
    color: var(--rbc-ink);
    margin: 0;
}

body.single-product div.product p.price ins {
    text-decoration: none;
    color: var(--rbc-acc);
}

body.single-product div.product p.price del {
    color: var(--rbc-ink-3);
    margin-right: 8px;
}

body.single-product div.product .woocommerce-product-details__short-description {
    color: var(--rbc-ink-2);
    font-size: 15px;
    line-height: 1.65;
    border-top: var(--rbc-line-w) solid var(--rbc-line);
    border-bottom: var(--rbc-line-w) solid var(--rbc-line);
    padding: 18px 0;
}

body.single-product div.product .woocommerce-product-details__short-description p {
    margin: 0 0 8px;
}

body.single-product div.product .woocommerce-product-details__short-description p:last-child { margin-bottom: 0; }

/* Add to cart form */

body.single-product form.cart {
    display: none !important;
}

body.single-product .rbc-cart-form-wrapper { display: block; }

body.single-product .rbc-cart-form-wrapper + .rbc-accordion,
body.single-product div.product .rbc-accordion {
    margin-top: 8px;
}

body.single-product .rbc-cart-form-wrapper form.cart,
body.single-product div.product .rbc-cart-form-wrapper form.cart {
    display: flex !important;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
}

/* Il selettore taglia occupa una riga intera sopra quantita + bottone */
body.single-product .rbc-cart-form-wrapper form.cart .rbc-size-field {
    flex: 1 0 100%;
    order: -1;
}

.rbc-size-field {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0 0 4px;
}

.rbc-size-field__label {
    font-family: var(--rbc-font-mono);
    font-size: 11px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--rbc-ink-2);
}

.rbc-size-field__label em {
    font-style: normal;
    color: var(--rbc-ink-3);
}

.rbc-size-options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.rbc-size-input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.rbc-size-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 48px;
    height: 44px;
    padding: 0 14px;
    border: var(--rbc-line-w) solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    font-family: var(--rbc-font-mono);
    font-size: 13px;
    letter-spacing: .04em;
    color: var(--rbc-ink);
    background: var(--rbc-paper);
    cursor: pointer;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
    user-select: none;
}

.rbc-size-chip:hover {
    border-color: var(--rbc-acc);
    color: var(--rbc-acc);
}

.rbc-size-input:checked + .rbc-size-chip {
    background: var(--rbc-ink);
    border-color: var(--rbc-ink);
    color: var(--rbc-paper);
}

.rbc-size-input:focus-visible + .rbc-size-chip {
    outline: 2px solid var(--rbc-acc);
    outline-offset: 2px;
}

body.single-product .rbc-cart-form-wrapper form.cart .quantity {
    margin: 0;
}

body.single-product .wp-block-woocommerce-add-to-cart-form,
body.single-product .wp-block-woocommerce-single-product-cart-form,
body.single-product .wc-block-components-product-button {
    display: none !important;
}

body.single-product div.product form.cart::before,
body.single-product div.product form.cart::after { content: none !important; }

body.single-product div.product form.cart .quantity {
    display: inline-flex;
    align-items: center;
}

body.single-product div.product form.cart .quantity input.qty {
    width: 64px;
    text-align: center;
    border: var(--rbc-line-w) solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    background: var(--rbc-paper);
    color: var(--rbc-ink);
    font-family: var(--rbc-font-mono);
    font-size: 14px;
    padding: 12px 8px;
}

body.single-product div.product form.cart .quantity input.qty:focus {
    outline: none;
    border-color: var(--rbc-acc);
}

body.single-product div.product form.cart button.single_add_to_cart_button,
body.single-product div.product form.cart .single_add_to_cart_button.button,
body.single-product div.product form.cart button[type="submit"].single_add_to_cart_button {
    flex: 1;
    background: var(--rbc-acc);
    border: var(--rbc-line-w) solid var(--rbc-acc);
    color: #fff;
    font-family: var(--rbc-font-mono);
    font-size: 13px;
    letter-spacing: .12em;
    text-transform: uppercase;
    padding: 16px 24px;
    border-radius: var(--rbc-radius);
    cursor: pointer;
    box-shadow: none;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}

body.single-product div.product form.cart button.single_add_to_cart_button:hover {
    background: var(--rbc-ink);
    border-color: var(--rbc-ink);
    color: var(--rbc-paper);
}

body.single-product div.product .product_meta { display: none; }

/* Product info blocks (quality + shipping) */

.rbc-product-blocks {
    display: flex;
    flex-direction: column;
    gap: 0;
    border-top: var(--rbc-line-w) solid var(--rbc-line);
    border-bottom: var(--rbc-line-w) solid var(--rbc-line);
}

.rbc-product-block {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 18px 0;
    border-bottom: 1px solid var(--rbc-paper-2);
}

.rbc-product-block:last-child { border-bottom: 0; }

.rbc-product-block svg {
    flex: 0 0 auto;
    margin-top: 2px;
    color: var(--rbc-acc);
}

.rbc-product-block strong {
    display: block;
    font-family: var(--rbc-font-head);
    font-weight: 700;
    font-size: 14px;
    color: var(--rbc-ink);
    margin-bottom: 4px;
}

.rbc-product-block p {
    margin: 0;
    color: var(--rbc-ink-2);
    font-size: 13px;
    line-height: 1.5;
}

.rbc-product-block--shipping {
    flex-direction: column;
    gap: 14px;
}

.rbc-shipping-row {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 14px;
    align-items: flex-start;
    width: 100%;
}

.rbc-shipping-row > svg {
    color: var(--rbc-ink);
}

.rbc-shipping-row > div { min-width: 0; }

.rbc-shipping-price {
    font-family: var(--rbc-font-mono);
    font-size: 13px;
    color: var(--rbc-ink);
    white-space: nowrap;
}

.rbc-shipping-row + .rbc-shipping-row {
    border-top: 1px solid var(--rbc-paper-2);
    padding-top: 14px;
}

/* Accordion */

.rbc-accordion {
    display: flex;
    flex-direction: column;
    border-top: var(--rbc-line-w) solid var(--rbc-line);
}

.rbc-accordion__item {
    border-bottom: var(--rbc-line-w) solid var(--rbc-line);
}

.rbc-accordion__item[open] .rbc-accordion__chevron { transform: rotate(180deg); }

.rbc-accordion__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 0;
    cursor: pointer;
    font-family: var(--rbc-font-mono);
    font-size: 12px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--rbc-ink);
    list-style: none;
}

.rbc-accordion__head::-webkit-details-marker { display: none; }
.rbc-accordion__head::marker { content: ""; }

.rbc-accordion__head:hover { color: var(--rbc-acc); }

.rbc-accordion__chevron {
    transition: transform .2s ease;
    color: var(--rbc-ink-2);
}

.rbc-accordion__body {
    padding: 0 0 18px;
    color: var(--rbc-ink-2);
    font-size: 14px;
    line-height: 1.65;
}

.rbc-accordion__body p { margin: 0 0 .6rem; }
.rbc-accordion__body p:last-child { margin-bottom: 0; }

.rbc-accordion__body .woocommerce-product-attributes {
    width: 100%;
    border: var(--rbc-line-w) solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    border-collapse: separate;
    border-spacing: 0;
}

.rbc-accordion__body th,
.rbc-accordion__body td {
    padding: 10px 14px;
    border-bottom: 1px solid var(--rbc-paper-2);
    font-family: var(--rbc-font-body);
    font-size: 13px;
    color: var(--rbc-ink);
    text-align: left;
}

.rbc-accordion__body th {
    font-family: var(--rbc-font-mono);
    font-size: 11px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--rbc-ink-2);
    background: var(--rbc-paper-2);
    width: 35%;
}

.rbc-accordion__body tr:last-child th,
.rbc-accordion__body tr:last-child td { border-bottom: 0; }

/* ============================================================
   SIDE CART DRAWER
   ============================================================ */

.rbc-side-cart {
    position: fixed;
    inset: 0;
    z-index: 9999;
    pointer-events: none;
    visibility: hidden;
}

.rbc-side-cart.is-open {
    pointer-events: auto;
    visibility: visible;
}

.rbc-side-cart__overlay {
    position: absolute;
    inset: 0;
    background: rgba(27, 26, 22, .55);
    backdrop-filter: blur(2px);
    opacity: 0;
    transition: opacity .25s ease;
}

.rbc-side-cart.is-open .rbc-side-cart__overlay { opacity: 1; }

.rbc-side-cart__panel {
    position: absolute;
    top: 0;
    right: 0;
    height: 100dvh;
    /* Drawer compatto che scorre da destra verso sinistra */
    width: min(540px, 94vw);
    max-width: 540px;
    background: var(--rbc-paper);
    border-left: var(--rbc-line-w) solid var(--rbc-line);
    transform: translateX(100%);
    transition: transform .3s var(--rbc-ease);
    display: flex;
    flex-direction: column;
}

.rbc-side-cart.is-open .rbc-side-cart__panel { transform: translateX(0); }

.rbc-side-cart__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 22px;
    border-bottom: var(--rbc-line-w) solid var(--rbc-line);
}

.rbc-side-cart__kicker {
    margin: 0;
    font-family: var(--rbc-font-mono);
    font-size: 11px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--rbc-ink);
}

.rbc-side-cart__kicker::before { display: none; }

.rbc-side-cart__close {
    background: transparent;
    border: 0;
    cursor: pointer;
    padding: 4px;
    color: var(--rbc-ink);
    border-radius: var(--rbc-radius);
}

.rbc-side-cart__close:hover { color: var(--rbc-acc); }

.rbc-side-cart__body {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 18px 22px;
}

.rbc-side-cart__body .woocommerce-mini-cart {
    list-style: none;
    margin: 0;
    padding: 0;
}

.rbc-side-cart__body .mini_cart_item {
    display: flex;
    gap: 12px;
    padding: 14px 0;
    border-bottom: 1px solid var(--rbc-paper-2);
    position: relative;
}

.rbc-side-cart__body .mini_cart_item:last-child { border-bottom: 0; }

.rbc-side-cart__body .mini_cart_item a img {
    width: 64px;
    height: 80px;
    object-fit: cover;
    border: var(--rbc-line-w) solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    margin: 0;
}

.rbc-side-cart__body .mini_cart_item a:not(.remove) {
    color: var(--rbc-ink);
    font-family: var(--rbc-font-head);
    font-weight: 700;
    font-size: 14px;
    flex: 1;
}

.rbc-side-cart__body .quantity {
    font-family: var(--rbc-font-mono);
    font-size: 12px;
    color: var(--rbc-ink-2);
}

.rbc-side-cart__body .woocommerce-Price-amount {
    font-family: var(--rbc-font-mono);
    color: var(--rbc-ink);
}

.rbc-side-cart__body a.remove_from_cart_button {
    position: absolute;
    top: 12px;
    right: 0;
    width: 22px;
    height: 22px;
    border-radius: 999px;
    background: var(--rbc-paper-2);
    color: var(--rbc-ink-2) !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-family: var(--rbc-font-mono);
    text-decoration: none;
    border: 1px solid var(--rbc-line);
}

.rbc-side-cart__body a.remove_from_cart_button:hover {
    background: var(--rbc-acc);
    color: #fff !important;
    border-color: var(--rbc-acc);
}

.rbc-side-cart__body .total {
    margin-top: 14px;
    font-family: var(--rbc-font-mono);
    font-size: 13px;
    color: var(--rbc-ink);
    border-top: var(--rbc-line-w) solid var(--rbc-line);
    padding-top: 14px;
}

.rbc-side-cart__body .total strong { font-weight: 700; }

.rbc-side-cart__body .buttons { display: none; }

.rbc-side-cart__body p.woocommerce-mini-cart__empty-message {
    text-align: center;
    color: var(--rbc-ink-2);
    font-family: var(--rbc-font-mono);
    font-size: 12px;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.rbc-side-cart__footer {
    padding: 18px 22px;
    border-top: var(--rbc-line-w) solid var(--rbc-line);
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rbc-side-cart__footer .rbc-button { width: 100%; }

body.rbc-cart-open {
    overflow: hidden;
}

@media (max-width: 480px) {
    .rbc-side-cart__panel { width: 100vw; max-width: 100vw; }
}

/* --- Contenuto carrello (drawer): righe con miniatura + stepper + rimozione --- */
.rbc-cart-content {
    width: 100%;
}

/* CTA footer: stessa larghezza, centrate, testo centrato */
.rbc-side-cart__footer {
    align-items: center;
}

.rbc-side-cart__footer > .rbc-button {
    width: 100%;
    max-width: 420px;
    margin-inline: auto;
    box-sizing: border-box;
    justify-content: center;
    text-align: center;
}

.rbc-cart-empty {
    text-align: center;
    color: var(--rbc-ink-2);
    font-family: var(--rbc-font-mono);
    font-size: 12px;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 48px 0;
    margin: 0;
}

.rbc-cart-lines {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.rbc-cart-line {
    display: grid;
    grid-template-columns: 72px 1fr auto;
    gap: 16px;
    padding: 18px 0;
    border-bottom: 1px solid var(--rbc-paper-2);
    align-items: start;
}

.rbc-cart-line:first-child { padding-top: 4px; }
.rbc-cart-line:last-child { border-bottom: 0; }

.rbc-cart-line__media { display: block; }

.rbc-cart-line__media img {
    width: 72px;
    height: 90px;
    object-fit: cover;
    border: var(--rbc-line-w) solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    display: block;
    margin: 0;
}

.rbc-cart-line__info {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.rbc-cart-line__name {
    margin: 0;
    font-family: var(--rbc-font-head);
    font-weight: 700;
    font-size: 15px;
    line-height: 1.2;
    color: var(--rbc-ink);
}

.rbc-cart-line__name a { color: inherit; }
.rbc-cart-line__name a:hover { color: var(--rbc-acc); }

.rbc-cart-line__meta {
    margin: 0;
    font-family: var(--rbc-font-mono);
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--rbc-ink-2);
}

.rbc-cart-line__controls {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 4px;
    flex-wrap: wrap;
}

.rbc-qty-stepper {
    display: inline-flex;
    align-items: center;
    border: var(--rbc-line-w) solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    overflow: hidden;
}

.rbc-qty-btn {
    width: 34px;
    height: 34px;
    background: transparent;
    border: 0;
    cursor: pointer;
    font-family: var(--rbc-font-mono);
    font-size: 16px;
    line-height: 1;
    color: var(--rbc-ink);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background .15s ease, color .15s ease;
}

.rbc-qty-btn:hover { background: var(--rbc-ink); color: var(--rbc-paper); }

.rbc-qty-val {
    min-width: 36px;
    text-align: center;
    font-family: var(--rbc-font-mono);
    font-size: 13px;
    color: var(--rbc-ink);
}

.rbc-cart-line__remove {
    background: transparent;
    border: 0;
    cursor: pointer;
    padding: 0;
    font-family: var(--rbc-font-mono);
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--rbc-ink-3);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rbc-cart-line__remove:hover { color: var(--rbc-acc); }

.rbc-cart-line__price {
    font-family: var(--rbc-font-mono);
    font-size: 14px;
    color: var(--rbc-ink);
    white-space: nowrap;
    text-align: right;
}

.rbc-cart-subtotal {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-top: 20px;
    padding-top: 16px;
    border-top: var(--rbc-line-w) solid var(--rbc-line);
    font-family: var(--rbc-font-mono);
    font-size: 13px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--rbc-ink);
}

.rbc-cart-subtotal strong { font-size: 16px; font-weight: 700; }

/* feedback "in lavorazione" durante gli aggiornamenti AJAX */
.rbc-side-cart.is-busy .rbc-cart-content { opacity: .55; pointer-events: none; }
.single_add_to_cart_button.is-loading { opacity: .6; pointer-events: none; }

/* --- Riepilogo prodotti in cima al checkout (con miniature) --- */
.rbc-checkout-summary {
    border: var(--rbc-line-w) solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    padding: 18px 20px;
    margin: 0 0 28px;
    background: var(--rbc-paper);
}

.rbc-checkout-summary__title {
    font-family: var(--rbc-font-mono);
    font-size: 12px;
    letter-spacing: .14em;
    text-transform: uppercase;
    margin: 0 0 14px;
    color: var(--rbc-ink);
}

.rbc-checkout-summary__items {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.rbc-checkout-summary__item {
    display: grid;
    grid-template-columns: 56px 1fr auto;
    gap: 14px;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid var(--rbc-paper-2);
}

.rbc-checkout-summary__item:last-child { border-bottom: 0; }

.rbc-checkout-summary__media img {
    width: 56px;
    height: 70px;
    object-fit: cover;
    border: var(--rbc-line-w) solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    display: block;
    margin: 0;
}

.rbc-checkout-summary__info {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.rbc-checkout-summary__name {
    font-family: var(--rbc-font-head);
    font-weight: 700;
    font-size: 14px;
    color: var(--rbc-ink);
}

.rbc-checkout-summary__meta {
    font-family: var(--rbc-font-mono);
    font-size: 11px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--rbc-ink-2);
}

.rbc-checkout-summary__price {
    font-family: var(--rbc-font-mono);
    font-size: 13px;
    color: var(--rbc-ink);
    white-space: nowrap;
}

.rbc-checkout-summary__subtotal {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-top: 14px;
    padding-top: 12px;
    border-top: var(--rbc-line-w) solid var(--rbc-line);
    font-family: var(--rbc-font-mono);
    font-size: 12px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--rbc-ink);
}

.rbc-checkout-summary__subtotal strong { font-size: 15px; font-weight: 700; }

/* Le righe prodotto sono gia' nel riepilogo in alto: nella review in basso
   teniamo solo i totali + il pagamento (evita la lista doppia). */
body.woocommerce-checkout #order_review .woocommerce-checkout-review-order-table thead,
body.woocommerce-checkout #order_review .woocommerce-checkout-review-order-table tbody {
    display: none !important;
}

/* --- Miniature nella pagina carrello --- */
body.woocommerce-cart td.product-thumbnail img,
body.woocommerce-cart .wc-block-cart-item__image img {
    width: 72px;
    height: 90px;
    object-fit: cover;
    border: var(--rbc-line-w) solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    display: block;
}

/* ============================================================
   FOOTER (dark)
   ============================================================ */

.rbc-footer {
    background: #000;
    color: var(--rbc-paper);
    margin-top: 90px;
    padding: 0;
}

.rbc-footer__inner {
    max-width: var(--rbc-container);
    margin: 0 auto;
    padding: 64px var(--rbc-gutter) 40px;
    display: grid;
    grid-template-columns: 1.6fr 1fr 1fr 1fr;
    gap: 34px;
}

@media (max-width: 760px) {
    .rbc-footer__inner { grid-template-columns: 1fr 1fr; gap: 24px; padding: 48px var(--rbc-gutter) 28px; }
}

@media (max-width: 480px) {
    .rbc-footer__inner { grid-template-columns: 1fr; }
}

.rbc-footer__brand {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.rbc-footer__wordmark {
    font-family: var(--rbc-font-head);
    font-weight: 800;
    font-size: 40px;
    letter-spacing: .12em;
    margin: 0;
    color: var(--rbc-paper);
}

.rbc-footer__tagline {
    font-size: 14px;
    line-height: 1.55;
    color: var(--rbc-paper);
    opacity: .7;
    max-width: 32ch;
    margin: 0;
}

.rbc-footer__heading,
.rbc-footer h4 {
    font-family: var(--rbc-font-mono);
    font-size: 11px;
    letter-spacing: .14em;
    text-transform: uppercase;
    opacity: .55;
    margin: 0 0 16px;
    color: var(--rbc-paper);
}

.rbc-footer__col ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rbc-footer__col a {
    color: var(--rbc-paper);
    opacity: .85;
    font-size: 14px;
    text-decoration: none;
}

.rbc-footer__col a:hover {
    opacity: 1;
    color: var(--rbc-acc);
}

.rbc-footer__instagram {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: var(--rbc-line-w) solid var(--rbc-paper);
    color: var(--rbc-paper);
    padding: 6px 12px;
    border-radius: 999px;
    font-family: var(--rbc-font-mono);
    font-size: 11px;
    letter-spacing: .1em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
    align-self: flex-start;
}

.rbc-footer__instagram:hover {
    background: var(--rbc-acc);
    color: #fff;
    border-color: var(--rbc-acc);
}

.rbc-footer__instagram svg { display: inline-block; }

.rbc-footer__bottom {
    max-width: var(--rbc-container);
    margin: 0 auto;
    padding: 20px var(--rbc-gutter);
    border-top: 1px solid rgba(243, 242, 236, .16);
    display: flex;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
    font-family: var(--rbc-font-mono);
    font-size: 11px;
    letter-spacing: .04em;
    opacity: .55;
    color: var(--rbc-paper);
}

.rbc-footer__bottom p { margin: 0; }

.rbc-footer__legal { opacity: .8; }

/* ============================================================
   FOCUS states & accessibility
   ============================================================ */

.rbc-woo-surface a:focus-visible,
.rbc-woo-surface button:focus-visible,
.rbc-front-page a:focus-visible,
.rbc-front-page button:focus-visible,
.rbc-custom-product-template a:focus-visible,
.rbc-custom-product-template button:focus-visible {
    outline: 2px solid var(--rbc-acc);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    .rbc-product-card:hover .rbc-product-card__image { transform: none; }
    .rbc-button .rbc-button__icon { transition: none; }
    .rbc-button:hover .rbc-button__icon { transform: none; }
    .rbc-side-cart__panel { transition: none; }
}

/* ============================================================
   Responsive tweaks
   ============================================================ */

@media (max-width: 1024px) {
    :root { --rbc-gutter: clamp(20px, 4vw, 32px); }
}

@media (max-width: 768px) {
    :root { --rbc-gutter: clamp(22px, 5vw, 28px); }
    .rbc-header__inner { height: 56px; gap: 14px; }
    .rbc-header__logo, #rbc-header-logo { font-size: 19px; }
    .rbc-closing-note__inner { flex-direction: column; align-items: flex-start; }
    .rbc-hero__head { gap: 12px; }
    .rbc-hero__meta { gap: 14px; }
    .rbc-hero__caption { flex-direction: column; align-items: flex-start; gap: 8px; }
}

@media (max-width: 480px) {
    :root { --rbc-gutter: 22px; }
    .rbc-display, .rbc-h-xl { font-size: clamp(34px, 11vw, 64px); line-height: .95; }
    .rbc-heading, .rbc-h-sec { font-size: clamp(24px, 8vw, 38px); }
    .rbc-hero { padding-top: 28px; }
    .rbc-hero__overlay { left: 24px; right: 24px; bottom: 16px; }
    .rbc-hero__overlay .rbc-button { width: 100%; justify-content: center; }
    .rbc-hero__media { aspect-ratio: 4/5; }
    .rbc-section-heading, .rbc-strip-heading, .rbc-sec-head { gap: 14px; margin: clamp(40px, 10vw, 60px) 0 20px; }
    .rbc-drop-strip { margin-top: clamp(40px, 10vw, 60px); }
    .rbc-service-grid { margin-top: clamp(40px, 10vw, 60px); }
    .rbc-closing-note { margin-top: clamp(40px, 10vw, 60px); }
    .rbc-footer { margin-top: 60px; }
}

/* ============================================================
   SINGLE SOURCE OF GUTTER: .rbc-storefront itself.
   We ALSO force the storefront to escape any constrained
   container the block theme might wrap it in by using the
   classic "(100% - 100vw) / 2" negative-margin break-out so
   our hero (which sits inside the storefront) can extend to
   the true viewport edges via its own negative gutter margin.
   ============================================================ */
.rbc-storefront {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc((100% - 100vw) / 2) !important;
    margin-right: calc((100% - 100vw) / 2) !important;
    overflow-x: hidden;
    padding-left: var(--rbc-gutter) !important;
    padding-right: var(--rbc-gutter) !important;
    box-sizing: border-box !important;
}

.rbc-storefront .rbc-hero__head,
.rbc-storefront .rbc-hero__display,
.rbc-storefront .rbc-hero__media-wrap,
.rbc-storefront .rbc-hero__caption,
.rbc-storefront .rbc-drop-strip,
.rbc-storefront .rbc-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
    max-width: var(--rbc-container);
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
    width: 100%;
}

/* Drop-strip is itself the wrapper, the inner grid stays at content width */
.rbc-storefront .rbc-drop-strip__grid { width: 100%; }

/* The hero media itself must stay inside its padded wrapper */
.rbc-storefront .rbc-hero__media { max-width: 100%; box-sizing: border-box; }

/* Flex items default to min-width:auto which can blow out a flex container;
   force min-width:0 on common flex children so they shrink properly */
.rbc-storefront .rbc-hero__head > *,
.rbc-storefront .rbc-hero__meta > *,
.rbc-storefront .rbc-section-heading > *,
.rbc-storefront .rbc-sec-head > *,
.rbc-storefront .rbc-strip-heading > *,
.rbc-storefront .rbc-hero__caption > * {
    min-width: 0;
    max-width: 100%;
}

/* Section heading CTA on mobile shouldn't push the layout */
@media (max-width: 560px) {
    .rbc-storefront .rbc-section-heading,
    .rbc-storefront .rbc-sec-head,
    .rbc-storefront .rbc-strip-heading {
        flex-direction: column;
        align-items: flex-start;
    }
    .rbc-storefront .rbc-section-heading > .rbc-button,
    .rbc-storefront .rbc-sec-head > .rbc-button,
    .rbc-storefront .rbc-strip-heading > .rbc-button {
        align-self: stretch;
        justify-content: center;
    }
}

/* ============================================================
   MOBILE: horizontal carousel for the home featured products
   The grid breaks out of the storefront gutter on the RIGHT
   side via negative margin so the last card can extend toward
   the screen edge, hinting that more content is swipe-able.
   ============================================================ */
@media (max-width: 768px) {
    .rbc-storefront .rbc-product-grid {
        display: flex !important;
        flex-wrap: nowrap !important;
        grid-template-columns: none !important;
        overflow-x: auto;
        overflow-y: visible;
        scroll-snap-type: x mandatory;
        gap: 12px;
        padding: 4px 0 8px;
        margin-right: calc(var(--rbc-gutter) * -1);
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    .rbc-storefront .rbc-product-grid::-webkit-scrollbar { display: none; height: 0; }
    .rbc-storefront .rbc-product-grid > .rbc-product-card {
        flex: 0 0 78%;
        max-width: 78%;
        scroll-snap-align: start;
        scroll-snap-stop: always;
    }
    .rbc-storefront .rbc-product-grid > .rbc-product-card:last-child {
        margin-right: var(--rbc-gutter);
    }
}

/* ============================================================
   MOBILE: horizontal carousel for the WooCommerce single
   product gallery (replaces stacked images + thumb strip)
   ============================================================ */
@media (max-width: 768px) {
    body.single-product div.product .woocommerce-product-gallery {
        margin-left: calc(var(--rbc-gutter) * -1) !important;
        margin-right: calc(var(--rbc-gutter) * -1) !important;
        width: calc(100% + (var(--rbc-gutter) * 2)) !important;
    }
    body.single-product div.product .woocommerce-product-gallery > figure,
    body.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper,
    body.single-product div.product .woocommerce-product-gallery .flex-viewport {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        overflow-y: visible !important;
        scroll-snap-type: x mandatory !important;
        gap: 10px !important;
        padding-left: var(--rbc-gutter) !important;
        padding-right: var(--rbc-gutter) !important;
        padding-bottom: 10px !important;
        margin: 0 !important;
        scrollbar-width: none !important;
        -webkit-overflow-scrolling: touch;
    }
    body.single-product div.product .woocommerce-product-gallery > figure::-webkit-scrollbar,
    body.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper::-webkit-scrollbar,
    body.single-product div.product .woocommerce-product-gallery .flex-viewport::-webkit-scrollbar {
        display: none; height: 0;
    }
    body.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__image,
    body.single-product div.product .woocommerce-product-gallery > figure > .woocommerce-product-gallery__image {
        flex: 0 0 88% !important;
        max-width: 88% !important;
        width: 88% !important;
        scroll-snap-align: start !important;
        scroll-snap-stop: always !important;
        margin: 0 !important;
    }
    body.single-product div.product .woocommerce-product-gallery img {
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 4/5;
        object-fit: cover;
    }
    /* Thumb strip useless when the user swipes — hide it on mobile */
    body.single-product div.product .woocommerce-product-gallery .flex-control-thumbs {
        display: none !important;
    }
    /* Realign the product page padding so we can do the full-bleed carousel */
    body.single-product .rbc-product-page {
        overflow-x: hidden;
    }
}
