/*
Theme Name: Renevis
Theme URI: https://renevis.pl
Author: Renevis
Description: Kliniczno-naukowy motyw blokowy dla marki suplementów diety Renevis. Jasna paleta ivory + teal, pill-shaped UI.
Version: 1.0.0
Requires at least: 6.5
Tested up to: 7.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: renevis
Tags: full-site-editing, block-theme, e-commerce, one-column, custom-colors
*/

/* ==========================================================================
   1. TOKENY POMOCNICZE
   ========================================================================== */
:root{
  --rv-bg:#F3F6F6;
  --rv-surface:#FFFFFF;
  --rv-ink:#15211F;
  --rv-ink-soft:#5A6B6C;
  --rv-teal:#1D9BB4;
  --rv-teal-deep:#0E7A8C;
  --rv-teal-ice:#DDF0F4;
  --rv-amber:#F0A03C;
  --rv-line:#E2E9E9;
  --rv-night:#0C1113;
  --rv-radius:24px;
  --rv-radius-lg:36px;
  /* wspólny odstęp treści od krawędzi ekranu */
  --rv-gutter:clamp(20px,4vw,32px);
}

/* ==========================================================================
   1a. GUTTER — treść nigdy nie dotyka krawędzi ekranu
   ========================================================================== */
/* theme.json zeruje padding-inline dla core/group, więc ujemne marginesy,
   którymi WordPress wyciąga .alignfull poza root padding, powodowałyby
   przewijanie w poziomie. Zerujemy je — gutter kontrolujemy sami. */
.wp-block-group.has-global-padding > .alignfull{margin-left:0;margin-right:0}

/* podwójna klasa — theme.json ustawia core/group padding-inline:0 z tą samą wagą */
.rv-header > .wp-block-group,
.wp-block-group.rv-footer,
.wp-block-group.rv-page-head,
main > .wp-block-group,
main > .wp-block-columns{
  padding-inline:var(--rv-gutter);
}

html{scroll-behavior:smooth}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}

/* ==========================================================================
   2. KLASY POMOCNICZE (używane w templates/*.html przez className)
   ========================================================================== */

/* --- Pill badge (mono, uppercase) --- */
.rv-badge{
  display:inline-flex;align-items:center;gap:.55rem;
  border:1px solid var(--rv-teal);border-radius:99px;
  padding:.55rem 1.15rem;background:rgba(255,255,255,.7);
  font-family:var(--wp--preset--font-family--mono);
  font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--rv-teal-deep);width:fit-content;
}
.rv-badge::before{
  content:"";width:7px;height:7px;border-radius:50%;background:var(--rv-teal);
  animation:rv-pulse 2.2s infinite;flex:none;
}
@keyframes rv-pulse{0%,100%{box-shadow:0 0 0 0 rgba(29,155,180,.45)}50%{box-shadow:0 0 0 6px rgba(29,155,180,0)}}

/* --- Mono label --- */
.rv-mono{
  font-family:var(--wp--preset--font-family--mono);
  font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--rv-ink-soft);
}

/* --- Sekcja: tag nad nagłówkiem --- */
.rv-eyebrow{
  display:inline-flex;align-items:center;gap:.5rem;
  background:var(--rv-teal-ice);color:var(--rv-teal-deep);
  border-radius:99px;padding:.45rem 1rem;
  font-size:.78rem;font-weight:600;width:fit-content;
}

/* --- Karty --- */
.rv-card{
  background:var(--rv-surface);border:1px solid var(--rv-line);
  border-radius:var(--rv-radius);
  box-shadow:0 14px 34px -22px rgba(15,60,70,.22);
  transition:transform .28s ease, box-shadow .28s ease;
}
.rv-card:hover{transform:translateY(-4px);box-shadow:0 24px 48px -24px rgba(15,60,70,.3)}

/* karty równej wysokości w gridzie */
.rv-equal .wp-block-column{display:flex}
.rv-equal .wp-block-column > .wp-block-group{flex:1;display:flex;flex-direction:column}
.rv-equal .rv-push{margin-top:auto}

/* --- Panel produktowy (render jest na białym tle, więc panel też jest jasny,
       inaczej pod zdjęciem widać byłoby biały prostokąt na ciemnym tle) --- */
.rv-stage{
  position:relative;border-radius:var(--rv-radius-lg);overflow:hidden;
  background:#FFFFFF;
  box-shadow:0 30px 70px -32px rgba(15,60,70,.32);
}
.rv-stage::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:3;
  border-radius:inherit;
  box-shadow:inset 0 0 0 1px var(--rv-line);
}
.rv-stage .wp-block-image,
.rv-stage figure{position:relative;z-index:2;margin:0}
.rv-stage img{
  display:block;width:100%;height:auto;
  animation:rv-float 5.5s ease-in-out infinite;
}
@keyframes rv-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}

/* --- Pływające tagi na produkcie --- */
.rv-float-wrap{position:relative}
.rv-tag{
  position:absolute;z-index:5;display:inline-flex;align-items:center;gap:.5rem;
  border-radius:99px;padding:.55rem 1rem;
  font-size:.82rem;font-weight:600;white-space:nowrap;
  box-shadow:0 12px 28px -8px rgba(12,40,46,.35);
}
.rv-tag--teal{background:var(--rv-teal);color:#fff;left:-1.5rem;top:32%}
.rv-tag--ice{background:var(--rv-teal-ice);color:var(--rv-teal-deep);right:-1.5rem;top:52%}
.rv-tag--amber{background:var(--rv-amber);color:#3A2A10;left:-.5rem;bottom:14%}
.rv-dose{
  position:absolute;z-index:5;right:-1rem;top:12%;
  background:rgba(255,255,255,.94);border:1px solid var(--rv-line);
  border-radius:14px;padding:.6rem .9rem;text-align:left;
  box-shadow:0 12px 28px -8px rgba(12,40,46,.25);
  font-family:var(--wp--preset--font-family--mono);font-size:.68rem;letter-spacing:.1em;
  color:var(--rv-ink-soft);line-height:1.5;
}
.rv-dose strong{display:block;font-size:1.05rem;color:var(--rv-teal-deep)}

/* --- Check tagi --- */
.rv-check{
  display:inline-flex;align-items:center;gap:.55rem;
  background:var(--rv-surface);border:1px solid var(--rv-line);border-radius:99px;
  padding:.6rem 1.2rem;font-size:.84rem;font-weight:500;color:var(--rv-ink);
}
.rv-check::before{
  content:"✓";flex:none;
  width:18px;height:18px;border-radius:50%;
  background:var(--rv-teal-ice);color:var(--rv-teal-deep);
  display:grid;place-items:center;font-size:.65rem;font-weight:700;
}

/* --- Przycisk outline --- */
.wp-block-button.rv-ghost .wp-block-button__link{
  background:var(--rv-surface);color:var(--rv-ink);
  border:1px solid var(--rv-line);box-shadow:none;
}
.wp-block-button.rv-ghost .wp-block-button__link:hover{
  border-color:var(--rv-teal);background:var(--rv-surface);color:var(--rv-teal-deep);
}
.wp-block-button__link{transition:transform .2s ease, box-shadow .2s ease, background .2s ease}
.wp-block-button__link:hover{transform:translateY(-2px)}

/* --- Pasek danych (liczby) --- */
.rv-datum b,.rv-datum strong{
  display:block;font-family:var(--wp--preset--font-family--display);
  font-size:1.75rem;font-weight:700;color:var(--rv-teal-deep);line-height:1.1;
}

/* --- Numer kroku --- */
.rv-step-num{
  font-family:var(--wp--preset--font-family--mono);
  font-size:.72rem;letter-spacing:.16em;color:var(--rv-teal-deep);
  text-transform:uppercase;
}

/* --- Dekoracje molekularne (tło hero) --- */
.rv-hero{position:relative}
.rv-hero::before,.rv-hero::after{
  content:"";position:absolute;pointer-events:none;z-index:0;opacity:.5;
  background-repeat:no-repeat;background-size:contain;
}
.rv-hero::before{
  left:-1%;top:14%;width:180px;height:220px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='220' fill='none'%3E%3Cpath d='M30 30 90 70 50 140 130 180' stroke='%231D9BB4' stroke-width='1.6' opacity='.5'/%3E%3Ccircle cx='30' cy='30' r='9' fill='%231D9BB4'/%3E%3Ccircle cx='90' cy='70' r='5' fill='%231D9BB4'/%3E%3Ccircle cx='50' cy='140' r='12' fill='%2353C6DD'/%3E%3Ccircle cx='130' cy='180' r='7' fill='%231D9BB4'/%3E%3C/svg%3E");
}
.rv-hero::after{
  right:-1%;top:44%;width:160px;height:200px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='200' fill='none'%3E%3Cpath d='M130 20 70 60 110 130 40 180' stroke='%231D9BB4' stroke-width='1.6' opacity='.5'/%3E%3Ccircle cx='130' cy='20' r='7' fill='%231D9BB4'/%3E%3Ccircle cx='70' cy='60' r='10' fill='%2353C6DD'/%3E%3Ccircle cx='110' cy='130' r='5' fill='%231D9BB4'/%3E%3Ccircle cx='40' cy='180' r='8' fill='%231D9BB4'/%3E%3C/svg%3E");
}
.rv-hero > *{position:relative;z-index:1}
.rv-hero h1{max-width:940px;margin-inline:auto}
/* inline-flex ignoruje margin:auto — dla wyśrodkowanych pigułek robimy z nich blok */
.rv-badge.has-text-align-center,
.rv-eyebrow.has-text-align-center{display:flex;width:fit-content;margin-inline:auto}

/* --- Baner naukowy: molekularna siatka w tle --- */
.rv-science{position:relative}
.rv-science .wp-block-columns{position:relative;z-index:2}
.rv-science .rv-cert p{margin-top:0;margin-bottom:0}

/* --- Nagłówek strony --- */
.rv-page-head{background:linear-gradient(180deg,var(--rv-teal-ice) 0%,var(--rv-bg) 100%)}

/* --- Treść długich stron (prose) --- */
.rv-prose{font-size:1rem;line-height:1.8}
.rv-prose h2{font-size:1.65rem;margin-top:2.6rem;margin-bottom:.9rem}
.rv-prose h3{font-size:1.2rem;margin-top:1.9rem;margin-bottom:.6rem}
.rv-prose h4{font-size:1.02rem;margin-top:1.5rem;margin-bottom:.5rem}
.rv-prose p{margin-bottom:1.1rem;color:var(--rv-ink-soft)}
.rv-prose li{margin-bottom:.55rem;color:var(--rv-ink-soft)}
.rv-prose strong{color:var(--rv-ink)}
.rv-prose table{
  width:100%;border-collapse:collapse;margin:1.4rem 0;
  background:var(--rv-surface);border:1px solid var(--rv-line);border-radius:var(--rv-radius);
  overflow:hidden;font-size:.92rem;
}
.rv-prose th{
  background:var(--rv-teal-ice);color:var(--rv-teal-deep);
  font-family:var(--wp--preset--font-family--mono);
  font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;
  text-align:left;padding:.9rem 1.1rem;font-weight:500;
}
.rv-prose td{padding:.9rem 1.1rem;border-top:1px solid var(--rv-line);color:var(--rv-ink-soft)}
.rv-legal{max-width:860px;margin-inline:auto}
.rv-legal h2{
  padding-top:1.6rem;border-top:1px solid var(--rv-line);
}
.rv-legal h2:first-of-type{border-top:none;padding-top:0}

/* --- Listy w stopce --- */
.rv-footer-list{list-style:none;padding-left:0!important;margin:0}
.rv-footer-list li{margin:0}

/* --- Stopka --- */
.rv-footer{border-radius:var(--rv-radius-lg) var(--rv-radius-lg) 0 0;overflow:hidden;position:relative}
.rv-footer::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:220px;pointer-events:none;
  background:radial-gradient(60% 100% at 50% 100%,rgba(29,155,180,.22),transparent 70%);
}
.rv-footer > *{position:relative;z-index:2}
.rv-footer a{color:rgba(255,255,255,.72)!important;transition:color .2s}
.rv-footer a:hover{color:#fff!important;text-decoration:none}
.rv-footer .rv-logo .wp-block-site-title a{color:#fff!important}
.rv-footer .rv-logo .wp-block-site-title a:hover{color:var(--rv-teal)!important}
.rv-social a{
  display:inline-block;border:1px solid rgba(255,255,255,.16);border-radius:99px;
  padding:.45rem 1.1rem;font-size:.82rem;
}
.rv-social a:hover{border-color:var(--rv-teal);background:rgba(29,155,180,.12)}

/* --- FAQ (details/summary via core/details) --- */
.wp-block-details{
  background:var(--rv-surface);border:1px solid var(--rv-line);
  border-radius:var(--rv-radius);padding:1.35rem 1.6rem;
}
.wp-block-details summary{
  font-family:var(--wp--preset--font-family--display);
  font-weight:600;font-size:1.05rem;cursor:pointer;list-style:none;
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
}
.wp-block-details summary::-webkit-details-marker{display:none}
.wp-block-details summary::after{
  content:"+";flex:none;width:26px;height:26px;border-radius:50%;
  background:var(--rv-teal-ice);color:var(--rv-teal-deep);
  display:grid;place-items:center;font-size:1rem;font-weight:600;transition:transform .25s;
}
.wp-block-details[open] summary::after{content:"−";transform:rotate(180deg)}
.wp-block-details p{margin-top:.9rem;color:var(--rv-ink-soft);font-size:.95rem}

/* ==========================================================================
   3. NAGŁÓWEK / NAWIGACJA
   ========================================================================== */
/* UWAGA: backdrop-filter NIE może być na .rv-header — tworzyłby blok zawierający
   dla position:fixed, przez co pełnoekranowe menu mobilne przyklejałoby się
   do nagłówka zamiast do okna. Dlatego blur siedzi na pseudoelemencie. */
.rv-header{position:sticky;top:0;z-index:100;border-bottom:1px solid transparent;transition:border-color .3s}
.rv-header::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:rgba(243,246,246,.85);backdrop-filter:blur(14px);
}
.rv-header.rv-scrolled{border-bottom-color:var(--rv-line)}

/* ---- Menu mobilne (overlay) ---- */
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close{color:var(--rv-ink)}
.wp-block-navigation__responsive-container-open{padding:.4rem}
.wp-block-navigation__responsive-container.is-menu-open{
  background:var(--rv-bg)!important;
  padding:1.4rem var(--rv-gutter) 2.5rem!important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{
  padding-top:2.5rem;
}
/* w overlayu pozycje idą od lewej — prefiks .rv-header podbija wagę
   ponad regułę WordPressa ustawiającą align-items:center */
.rv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{
  gap:.25rem;width:100%;align-items:stretch;justify-content:flex-start;
}
.rv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item{
  width:100%;border-bottom:1px solid var(--rv-line);
}
.rv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:last-child{border-bottom:none}
.rv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{
  display:block;width:100%;padding:1rem 0;
  font-family:var(--wp--preset--font-family--display);
  font-size:1.45rem;font-weight:600;letter-spacing:-.02em;
  color:var(--rv-ink);
}
.rv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover{color:var(--rv-teal-deep)}
.wp-block-navigation__responsive-container-close{
  width:44px;height:44px;border-radius:50%;
  background:var(--rv-surface);border:1px solid var(--rv-line);
}
.rv-logo{flex:none}
.rv-logo .wp-block-site-title{margin:0}
.rv-logo .wp-block-site-title a{
  font-family:var(--wp--preset--font-family--display);
  font-weight:700;font-size:1.3rem;letter-spacing:-.02em;
  color:var(--rv-ink)!important;text-decoration:none;
}
.rv-logo .wp-block-site-title a:hover{text-decoration:none;color:var(--rv-teal-deep)!important}
.rv-header .wp-block-shortcode{margin:0;flex:none}
.wp-block-navigation .wp-block-navigation-item__content{
  font-size:.92rem;font-weight:500;color:var(--rv-ink-soft);
}
.wp-block-navigation .wp-block-navigation-item__content:hover{color:var(--rv-teal-deep);text-decoration:none}
.rv-cart-link{
  display:inline-flex;align-items:center;gap:.5rem;
  background:var(--rv-ink);color:#fff!important;border-radius:99px;
  padding:.55rem 1.15rem;font-size:.85rem;font-weight:600;text-decoration:none;
  transition:background .2s;
}
.rv-cart-link:hover{background:var(--rv-teal-deep);text-decoration:none}
.rv-cart-count{
  background:var(--rv-teal);border-radius:99px;
  font-size:.68rem;padding:.1rem .45rem;line-height:1.5;
}

/* ==========================================================================
   4. WOOCOMMERCE — dopasowanie do designu
   ========================================================================== */
.woocommerce-page .rv-page-title,
.rv-page-head{
  background:linear-gradient(180deg,var(--rv-teal-ice) 0%,var(--rv-bg) 100%);
}

/* --- Produkt: karta w gridzie --- */
ul.products li.product{
  background:var(--rv-surface);border:1px solid var(--rv-line);
  border-radius:var(--rv-radius);padding:1.1rem;
  box-shadow:0 14px 34px -22px rgba(15,60,70,.22);
  transition:transform .28s ease, box-shadow .28s ease;
  text-align:left;
}
ul.products li.product:hover{transform:translateY(-4px);box-shadow:0 24px 48px -24px rgba(15,60,70,.3)}
ul.products li.product img{
  border-radius:18px;background:#FFFFFF;border:1px solid var(--rv-line);margin-bottom:1rem;
}
ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--wp--preset--font-family--display)!important;
  font-size:1.05rem!important;font-weight:600;color:var(--rv-ink);padding:0!important;
}
ul.products li.product .price{
  color:var(--rv-teal-deep)!important;font-weight:700;font-size:1.1rem;
  display:block;margin:.4rem 0 .9rem;
}
ul.products li.product .price del{color:var(--rv-ink-soft)!important;font-weight:400;font-size:.9rem}
ul.products li.product .button,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit{
  background:var(--rv-teal-deep)!important;color:#fff!important;
  border-radius:99px!important;padding:.85rem 1.7rem!important;
  font-family:var(--wp--preset--font-family--body)!important;
  font-weight:600!important;font-size:.92rem!important;
  box-shadow:0 16px 32px -12px rgba(14,122,140,.5);
  transition:transform .2s, background .2s;
}
.woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce input.button:hover, .woocommerce #respond input#submit:hover{
  background:var(--rv-teal)!important;transform:translateY(-2px);
}
.woocommerce a.button.alt, .woocommerce button.button.alt{
  background:var(--rv-teal-deep)!important;
}

/* --- Pojedynczy produkt (PDP) --- */
.woocommerce div.product{padding-top:1rem}
.woocommerce div.product div.images img{
  border-radius:var(--rv-radius-lg);background:#FFFFFF;
  border:1px solid var(--rv-line);
  box-shadow:0 30px 70px -32px rgba(15,60,70,.32);
}
.woocommerce div.product .product_title{
  font-family:var(--wp--preset--font-family--display);
  font-size:clamp(2rem,4vw,2.9rem);font-weight:600;letter-spacing:-.03em;line-height:1.08;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price{
  color:var(--rv-teal-deep)!important;
  font-family:var(--wp--preset--font-family--display);
  font-size:2rem!important;font-weight:700;
}
.woocommerce div.product .woocommerce-product-details__short-description{
  color:var(--rv-ink-soft);font-size:1rem;line-height:1.7;margin-bottom:1.5rem;
}
.woocommerce div.product form.cart div.quantity{margin-right:.8rem}
.woocommerce .quantity .qty{
  border:1px solid var(--rv-line);border-radius:99px;
  padding:.85rem .6rem;background:var(--rv-surface);width:5rem;text-align:center;
  font-family:var(--wp--preset--font-family--body);font-weight:600;
}
.woocommerce div.product .woocommerce-tabs ul.tabs{padding-left:0}
.woocommerce div.product .woocommerce-tabs ul.tabs::before{border-bottom-color:var(--rv-line)}
.woocommerce div.product .woocommerce-tabs ul.tabs li{
  background:var(--rv-surface);border-color:var(--rv-line);border-radius:14px 14px 0 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{
  background:var(--rv-surface);border-bottom-color:var(--rv-surface);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
  font-family:var(--wp--preset--font-family--body);font-weight:600;color:var(--rv-ink-soft);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:var(--rv-teal-deep)}
/* nota o suplemencie diety pod przyciskiem koszyka */
.rv-disclaimer{
  margin-top:1.35rem;font-size:.8rem;line-height:1.7;color:var(--rv-ink-soft);
  background:var(--rv-teal-ice);border-radius:14px;padding:.9rem 1.1rem;
}

/* nagłówki w opisie produktu — mniejsze niż nagłówki sekcji strony */
.woocommerce div.product .woocommerce-tabs .panel > h2{
  font-size:1.5rem;margin-bottom:1.2rem;
}
.woocommerce div.product .woocommerce-tabs .panel h2:not(:first-child){
  font-size:1.3rem;margin-top:2rem;margin-bottom:.7rem;
}
.woocommerce div.product .woocommerce-tabs .panel p{
  color:var(--rv-ink-soft);line-height:1.75;margin-bottom:1rem;
}
.woocommerce div.product .woocommerce-tabs .panel li{color:var(--rv-ink-soft);line-height:1.7;margin-bottom:.5rem}
.woocommerce div.product .woocommerce-tabs .panel strong{color:var(--rv-ink)}

/* tabela składu w opisie produktu */
.woocommerce div.product .woocommerce-tabs .panel table{
  width:100%;border-collapse:collapse;margin:1.2rem 0 1.6rem;
  background:var(--rv-surface);border:1px solid var(--rv-line);
  border-radius:var(--rv-radius);overflow:hidden;font-size:.92rem;
}
.woocommerce div.product .woocommerce-tabs .panel table th{
  background:var(--rv-teal-ice);color:var(--rv-teal-deep);
  font-family:var(--wp--preset--font-family--mono);
  font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;
  text-align:left;padding:.85rem 1.1rem;font-weight:500;
}
.woocommerce div.product .woocommerce-tabs .panel table td{
  padding:.85rem 1.1rem;border-top:1px solid var(--rv-line);color:var(--rv-ink-soft);
}
.woocommerce div.product .woocommerce-tabs .panel table td:nth-child(2){
  font-weight:700;color:var(--rv-teal-deep);white-space:nowrap;
}
.woocommerce div.product .woocommerce-tabs .panel figure{margin:0;overflow-x:auto}

.woocommerce .product_meta{
  font-size:.85rem;color:var(--rv-ink-soft);border-top:1px solid var(--rv-line);
  padding-top:1rem;margin-top:1.5rem;
}

/* --- Koszyk --- */
.woocommerce table.shop_table{
  border:1px solid var(--rv-line);border-radius:var(--rv-radius);
  background:var(--rv-surface);border-collapse:separate;overflow:hidden;
}
.woocommerce table.shop_table th{
  font-family:var(--wp--preset--font-family--mono);
  font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--rv-ink-soft);font-weight:500;padding:1.1rem;
}
.woocommerce table.shop_table td{padding:1.1rem;border-top:1px solid var(--rv-line)}
.woocommerce table.shop_table img{border-radius:12px;background:#FFFFFF;border:1px solid var(--rv-line)}
.woocommerce-cart table.cart td.actions .coupon .input-text{
  border:1px solid var(--rv-line);border-radius:99px;padding:.85rem 1.3rem;
  background:var(--rv-surface);
}
.woocommerce-cart .cart-collaterals .cart_totals > h2,
.woocommerce .cart_totals h2{
  font-family:var(--wp--preset--font-family--display);font-size:1.3rem;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{
  background:var(--rv-teal-deep)!important;border-radius:99px!important;
  padding:1.05rem 2rem!important;font-size:1rem!important;
}

/* --- Checkout --- */
.woocommerce-checkout h3{
  font-family:var(--wp--preset--font-family--display);font-size:1.3rem;margin-bottom:1rem;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row .select2-container .select2-selection{
  border:1px solid var(--rv-line)!important;border-radius:14px!important;
  padding:.9rem 1.1rem!important;background:var(--rv-surface)!important;
  font-family:var(--wp--preset--font-family--body);height:auto!important;
}
.woocommerce form .form-row label{
  font-size:.85rem;font-weight:600;color:var(--rv-ink);margin-bottom:.4rem;
}
#add_payment_method #payment, .woocommerce-cart #payment, .woocommerce-checkout #payment{
  background:var(--rv-teal-ice);border-radius:var(--rv-radius);
}
.woocommerce-checkout #payment div.payment_box{background:var(--rv-surface);border-radius:14px}
.woocommerce-checkout #payment div.payment_box::before{border-bottom-color:var(--rv-surface)}

/* --- Komunikaty --- */
.woocommerce-message,.woocommerce-info,.woocommerce-error{
  border-top:none!important;border-radius:18px;
  background:var(--rv-surface);border:1px solid var(--rv-line);
  padding:1.1rem 1.5rem 1.1rem 3.2rem!important;
}
.woocommerce-message::before{color:var(--rv-teal)}
.woocommerce-info::before{color:var(--rv-teal-deep)}
.woocommerce-error::before{color:#C0392B}
.woocommerce-message a.button,.woocommerce-info a.button{
  padding:.5rem 1.2rem!important;font-size:.82rem!important;box-shadow:none;
}

/* --- Breadcrumbs --- */
.woocommerce-breadcrumb{
  font-size:.85rem;color:var(--rv-ink-soft);margin-bottom:1.5rem!important;
}
.woocommerce-breadcrumb a{color:var(--rv-teal-deep)}

/* --- Badge wyprzedaży --- */
.woocommerce span.onsale{
  background:var(--rv-amber)!important;color:#3A2A10!important;
  border-radius:99px;font-weight:700;font-size:.75rem;
  min-height:auto;min-width:auto;padding:.35rem 1rem;line-height:1.5;
}

/* --- Powiązane produkty --- */
.woocommerce .related > h2, .woocommerce .upsells > h2{
  font-family:var(--wp--preset--font-family--display);
  font-size:1.6rem;margin-bottom:1.5rem;
}

/* ==========================================================================
   5. ANIMACJE WEJŚCIA (scroll observer w functions.php)
   ========================================================================== */
.rv-reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.3,1)}
.rv-reveal.rv-in{opacity:1;transform:none}
.rv-reveal-d1{transition-delay:.09s}
.rv-reveal-d2{transition-delay:.18s}
.rv-reveal-d3{transition-delay:.27s}

/* animacje muszą być widoczne w edytorze */
.editor-styles-wrapper .rv-reveal{opacity:1!important;transform:none!important}
.editor-styles-wrapper .rv-stage img{animation:none}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .rv-reveal{opacity:1;transform:none}
}

/* ==========================================================================
   6. RESPONSYWNOŚĆ
   ========================================================================== */
@media (max-width:1024px){
  .rv-molecule,
  .rv-hero::before,.rv-hero::after{display:none}
  /* Zaokrąglone panele muszą być wsunięte od krawędzi ekranu — inaczej
     ich rogi (radius 36px) są przycinane i wyglądają na zepsute. */
  /* Podwójna klasa + !important: układ constrained WordPressa wymusza
     margin-inline:auto z !important, a jego CSS ładuje się po tym arkuszu. */
  .wp-block-group.rv-science,
  .wp-block-group.rv-promo{
    margin-inline:var(--rv-gutter)!important;
    padding-inline:1.35rem!important;
  }
  .rv-tag--teal{left:.6rem;top:30%}
  .rv-tag--ice{right:.6rem;top:50%}
  .rv-tag--amber{left:.9rem;bottom:11%}
  .rv-dose{right:.7rem;top:9%}
  .rv-hide-tablet{display:none!important}
}
@media (max-width:781px){
  .rv-datum b,.rv-datum strong{font-size:1.45rem}
  .wp-block-details{padding:1.1rem 1.2rem}
  .wp-block-details summary{font-size:.98rem}
  /* karty produktów Woo: 2 kolumny zamiast 3-4 */
  .woocommerce ul.products[class*="columns-"] li.product{width:47%!important;margin-right:6%!important}
  .woocommerce ul.products[class*="columns-"] li.product:nth-child(2n){margin-right:0!important}
}
@media (max-width:600px){
  /* tagi mniejsze i wciśnięte w rogi, żeby nie zasłaniały etykiety */
  .rv-tag{font-size:.72rem;padding:.4rem .8rem;box-shadow:0 8px 18px -6px rgba(12,40,46,.4)}
  .rv-tag--teal{left:-.3rem;top:20%}
  .rv-tag--ice{right:-.3rem;top:44%}
  .rv-tag--amber{left:-.3rem;bottom:6%}
  .rv-dose{right:-.3rem;top:4%;padding:.45rem .7rem;font-size:.6rem}
  .rv-dose strong{font-size:.9rem}
  .rv-check{padding:.5rem 1rem;font-size:.78rem}
  .woocommerce ul.products[class*="columns-"] li.product{width:100%!important;margin-right:0!important}
  .woocommerce div.product form.cart div.quantity{margin-bottom:.8rem;float:none;display:inline-block}
  .woocommerce div.product form.cart .button{width:100%}
  /* koszyk: tabela w układzie kart */
  .woocommerce-cart table.cart tbody td{padding:.7rem 1rem}

  /* Koszyk blokowy: tabela nie może być szersza niż kontener.
     Rozpychał ją badge „Oszczędzasz…" — układamy go pod ceną. */
  .wc-block-cart-items{width:100%;max-width:100%}
  .wc-block-cart-item__image,
  .wc-block-cart-item__image img{width:64px;min-width:0}
  .wc-block-cart-item__total{white-space:normal}
  .wc-block-cart-item__total-price-and-sale-badge-wrapper{
    display:flex;flex-direction:column;align-items:flex-end;gap:.35rem;
  }
  .wc-block-components-sale-badge{white-space:normal;text-align:right}
}
