/*
 Theme Name:   Bricks Child Theme
 Theme URI:    https://bricksbuilder.io/
 Description:  Use this child theme to extend Bricks.
 Author:       Bricks
 Author URI:   https://bricksbuilder.io/
 Template:     bricks
 Version:      1.5
 Text Domain:  bricks
*/

/* Archivo from our server instead of Google Fonts (loaded before consent otherwise).
   Variable font, weight axis only, Latin with Czech characters. */
@font-face {
  font-family: "Archivo";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("fonts/flowride-archivo.woff2") format("woff2");
}

@font-face {
  font-family: "Archivo";
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url("fonts/flowride-archivo-italic.woff2") format("woff2");
}

/* ============================================================
   CUSTOM CSS — centralizované ručně psané styly
   ============================================================
   Vše co bylo rozházené v Bricks element CSS a Global Settings
   je teď na jednom místě. Bricks UI nastavení (Theme Styles,
   element paddingy/marginy) se NESAHÁ — spravuje se v editoru.

   OBSAH:
   1. Custom properties (barvy bez Bricks ekvivalentu)
   2. WooCommerce – Produktová stránka (add-to-cart button)
   3. WooCommerce – Košík (slide-hover buttons, qty wrapper, cart totals)
   ============================================================ */

/* === 0. CUSTOM PROPERTIES === */
:root {
  --kurzy-border-light: #f0f0f0;
}


/* === 1. PRODUKTOVÁ STRÁNKA ===
   ============================================================ */

/* Add-to-cart wrapper — qty a button vedle sebe, zarovnané */
.woocommerce-variation-add-to-cart,
.variations_button {
  display: flex !important;
  align-items: center !important;
  gap: 16px;
  flex-wrap: wrap;
}

/* Add-to-cart button — černý, uppercase */
.woocommerce-variation-add-to-cart .single_add_to_cart_button,
.variations_button .single_add_to_cart_button {
  background: var(--bricks-color-eqcrjq) !important;
  color: var(--bricks-color-ygrnej) !important;
  border: none !important;
  border-radius: 0 !important;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  padding: 18px 28px !important;
  font-size: 1em;
  cursor: pointer;
  margin-top: 0;
}

.woocommerce-variation-add-to-cart .single_add_to_cart_button:hover,
.variations_button .single_add_to_cart_button:hover {
  opacity: .85;
}


/* === 2. KOŠÍK ===
   Podle grafických podkladů klienta (29. 9. 2026): tabulka Produkt, Množství,
   Cena, Mezisoučet, pod kurzem účastníci, kód, cena celkem a pokladna vpravo.
   Pořadí sloupců mění mřížka, šablona WooCommerce zůstává beze změny.
   ============================================================ */

:root {
  --kosik-line: #b5b5b5;
  /* kóta „1,5“ = 1,5 × --space-1 */
  --kosik-gap: calc(var(--space-1) * 1.5);
  /* Čtvercová fotka sahá od verzálek názvu po poslední řádek kontaktu u položky s jedním
     účastníkem: název, termín, Účastníci a účastník (4 řádky Body), kontakt (řádek Small)
     a mezi nimi 1/2 + 1 + 1/2 + 1/2 jedničky, bez místa nad verzálkami názvu, které
     ořízne text-box-trim (6,65 px u Archiva 18 px). */
  --kosik-foto: calc(1.8rem * 1.55 * 4 + max(12px, 1.3rem) * 1.55 + var(--space-1) * 2.5 - 6.65px);
  --kosik-mezera: 24px;
  /* šířka částky, nad ni se centruje nadpis Mezisoučet */
  --kosik-castka: 6.8rem;
  /* šířka sloupce s křížkem + mezera, na ni se zarovnává součet vpravo */
  --kosik-odebrat: calc(32px + var(--kosik-mezera));
}

.woocommerce-cart-form,
.cart-collaterals {
  max-width: 1040px;
  width: 100% !important;
}

.woocommerce-cart-form__contents,
.woocommerce-cart-form__contents thead,
.woocommerce-cart-form__contents tbody {
  display: block !important;
  width: 100% !important;
  border: 0 !important;
  margin: 0 !important;
}

/* Fotka zasahuje do mezery sloupců, název začíná --space-2 za ní (kóta „2“). */
.woocommerce-cart-form__contents thead tr,
.woocommerce-cart-form__contents tr.cart_item {
  display: grid !important;
  grid-template-columns: calc(var(--kosik-foto) - var(--kosik-mezera) + var(--space-2)) minmax(0, 1fr) 110px 120px 130px 32px;
  column-gap: var(--kosik-mezera);
  align-items: start;
}

.woocommerce-cart-form__contents th,
.woocommerce-cart-form__contents td {
  display: block !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  text-align: left;
  font-size: 1.8rem;
  font-weight: 400;
}

.woocommerce-cart-form__contents .product-thumbnail { order: 1; display: block !important; }
.woocommerce-cart-form__contents .product-name      { order: 2; }
.woocommerce-cart-form__contents .product-quantity  { order: 3; text-align: center !important; }
.woocommerce-cart-form__contents .product-price     { order: 4; text-align: center !important; }
.woocommerce-cart-form__contents .product-subtotal  { order: 5; text-align: right !important; }
.woocommerce-cart-form__contents .product-remove    { order: 6; text-align: right !important; }

/* Hlavička v roli Eyebrow (jako třída .eyebrow), nadpisy nad středem částek */
.woocommerce-cart-form__contents thead tr {
  padding-bottom: var(--kosik-gap);
  border-bottom: 1px solid var(--kosik-line);
}

.woocommerce-cart-form__contents thead th {
  font-family: "Alte haas", sans-serif;
  font-size: 1.1rem !important;
  font-weight: 500 !important;
  line-height: 1.25 !important;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--bricks-color-eqcrjq);
}

.woocommerce-cart-form__contents thead th.product-subtotal {
  display: flex !important;
  justify-content: center;
  padding-left: calc(100% - var(--kosik-castka)) !important;
  white-space: nowrap;
}

/* Řádek položky */
.woocommerce-cart-form__contents tr.cart_item {
  padding: var(--kosik-gap) 0;
  border-bottom: 1px solid var(--kosik-line);
}

.woocommerce-cart-form__contents .product-thumbnail img {
  display: block;
  width: var(--kosik-foto) !important;
  height: var(--kosik-foto) !important;
  max-width: none !important;
  object-fit: cover;
}

/* Verzálky názvu začínají na horní hraně fotky, bez půlky řádkování nad nimi. Množství,
   ceny a křížek se posunou s ním, ať zůstanou na řádku názvu. */
.woocommerce-cart-form__contents tr.cart_item .product-name,
.woocommerce-cart-form__contents tr.cart_item .product-quantity:not(:has(.quantity)),
.woocommerce-cart-form__contents tr.cart_item .product-price,
.woocommerce-cart-form__contents tr.cart_item .product-subtotal,
.woocommerce-cart-form__contents tr.cart_item .product-remove {
  text-box-trim: trim-start;
  text-box-edge: cap alphabetic;
}

.woocommerce-cart-form__contents .product-name > a {
  font-weight: 700;
  text-transform: uppercase;
  color: var(--bricks-color-eqcrjq);
  text-decoration: none;
}

/* Termín nebo velikost pod názvem jako v souhrnu pokladny */
.woocommerce-cart-form__contents .product-name .kurzy-cart-varianta {
  margin: calc(var(--space-1) / 2) 0 0;
}

.woocommerce-cart-form__contents .product-name dl.variation {
  margin: .8rem 0 0 !important;
  font-size: 1.8rem;
}

.woocommerce-cart-form__contents .product-name dl.variation dt,
.woocommerce-cart-form__contents .product-name dl.variation dd {
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  font-weight: 400 !important;
}

.woocommerce-cart-form__contents .product-name dl.variation dd p {
  margin: 0 !important;
}

/* Každá dvojice popisek a hodnota na vlastním řádku (lekce, poukaz), Účastníci přes celou šířku */
.woocommerce-cart-form__contents .product-name dl.variation {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
}

.woocommerce-cart-form__contents .product-name dl.variation .variation-astnci {
  grid-column: 1 / -1;
}

/* Účastníci mají společný styl s pokladnou v pluginu (frontend.css, .kurzy-attendees-cart). */

.woocommerce-cart-form__contents .product-remove a.remove {
  display: inline-block;
  font-size: 2.8rem !important;
  line-height: 1 !important;
  font-weight: 300;
  color: var(--bricks-color-eqcrjq) !important;
  background: transparent !important;
  text-decoration: none;
}

/* U kurzu je množství pevně dané počtem účastníků, jen číslo */
.woocommerce-cart-form__contents td.product-quantity .kurzy-qty-locked {
  display: inline !important;
  width: auto !important;
  min-width: 0;
  font-size: inherit;
  font-weight: 400 !important;
  text-align: inherit !important;
}

/* Množství u merche: světlé pole místo černého boxu, u kurzu je jen číslo */
.woocommerce-cart-form .quantity {
  width: auto !important;
  max-width: 110px;
  position: static !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 4px 8px !important;
  background: transparent !important;
  border: 1px solid var(--bricks-color-eqcrjq);
}

.woocommerce-cart-form .quantity input.qty {
  width: 28px !important;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
  color: var(--bricks-color-eqcrjq) !important;
  text-align: center !important;
  font-size: 1.8rem !important;
  -moz-appearance: textfield !important;
}

.woocommerce-cart-form .quantity input.qty::-webkit-outer-spin-button,
.woocommerce-cart-form .quantity input.qty::-webkit-inner-spin-button {
  -webkit-appearance: none !important;
}

.woocommerce-cart-form .quantity .minus,
.woocommerce-cart-form .quantity .plus {
  position: static !important;
  display: inline-flex;
  width: 16px;
  color: var(--bricks-color-eqcrjq) !important;
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  cursor: pointer !important;
}

.woocommerce-cart-form .quantity .minus svg,
.woocommerce-cart-form .quantity .plus svg {
  width: 16px;
  height: 16px;
}

/* Slevový kód */
.woocommerce-cart-form__contents tbody tr:not(.cart_item) {
  display: block !important;
  padding: var(--kosik-gap) 0;
  border-bottom: 1px solid var(--kosik-line);
}

.woocommerce-cart-form__contents td.actions {
  padding-left: calc(var(--kosik-foto) + var(--space-2)) !important;
}

/* Pole a tlačítko Uplatnit na sebe navazují */
.woocommerce-cart-form .coupon {
  display: flex !important;
  align-items: stretch;
  gap: 0;
  float: none !important;
}

.woocommerce-cart-form .coupon label {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

.woocommerce-cart-form .coupon #coupon_code {
  width: 13rem !important;
  height: 3.6rem !important;
  margin: 0 !important;
  padding: 0 1.6rem !important;
  border: 1px solid var(--kosik-line) !important;
  border-radius: 0 !important;
  font-size: 1.8rem;
}

/* Košík se aktualizuje sám, tlačítko není potřeba */
.woocommerce-cart-form .button[name="update_cart"] {
  display: none !important;
}

/* --- Tlačítka (sdílený slide-hover) --- */
.woocommerce-cart-form .button[name="apply_coupon"],
.cart_totals .checkout-button {
  position: relative !important;
  z-index: 1 !important;
  overflow: hidden !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center;
  background-color: var(--bricks-color-eqcrjq) !important;
  color: var(--bricks-color-ygrnej) !important;
  border: none !important;
  border-radius: 0 !important;
  cursor: pointer !important;
  font-size: 1.3rem;
  font-weight: 700;
  text-transform: uppercase;
  transition: color 0.4s ease !important;
}

.woocommerce-cart-form .button[name="apply_coupon"] {
  height: 3.6rem;
  margin: 0 !important;
  padding: 0 2.2rem !important;
}

.cart_totals .checkout-button {
  height: auto !important;
  line-height: 1.2 !important;
  padding: 1.8rem 3.2rem !important;
  margin: 0 !important;
}

.woocommerce-cart-form .button[name="apply_coupon"]::before,
.cart_totals .checkout-button::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 0 !important;
  height: 100% !important;
  background-color: var(--kurzy-border-light) !important;
  z-index: -1 !important;
  transition: width 0.4s cubic-bezier(0.7, 0, 0.3, 1) !important;
}

.woocommerce-cart-form .button[name="apply_coupon"]:hover,
.cart_totals .checkout-button:hover {
  color: var(--bricks-color-eqcrjq) !important;
}

.woocommerce-cart-form .button[name="apply_coupon"]:hover::before,
.cart_totals .checkout-button:hover::before {
  width: 100% !important;
}

/* --- Součet a pokladna vpravo pod mezisoučtem --- */
.cart_totals {
  width: 100% !important;
  float: none !important;
  padding-right: var(--kosik-odebrat);
}

.cart_totals > h2,
.cart_totals .cart-subtotal {
  display: none !important;
}

/* Mezisoučet jen když pod ním je doprava nebo poplatek, jinak by se rovnal ceně celkem */
.cart_totals .cart-subtotal:has(~ .shipping, ~ .fee) {
  display: flex !important;
}

.cart_totals table,
.cart_totals table tbody {
  display: block !important;
  width: 100% !important;
  border: 0 !important;
  margin: 0 !important;
}

/* Od čáry nad součtem kóta „2“ */
.cart_totals table {
  padding-top: var(--space-2);
}

.cart_totals table tr {
  display: flex !important;
  justify-content: flex-end;
  align-items: baseline;
  gap: 4.6rem;
  padding: 0;
  border: 0 !important;
}

.cart_totals table tr:not(.cart-subtotal) ~ tr:not(.order-total) {
  padding-top: var(--space-1);
}

.cart_totals table th,
.cart_totals table td {
  display: block !important;
  width: auto !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  font-size: 1.8rem !important;
  line-height: 1.55;
  text-align: right !important;
  text-transform: none;
}

.cart_totals table td::before {
  display: none !important;
}

.cart_totals .order-total th,
.cart_totals .order-total td,
.cart_totals .order-total td strong {
  font-weight: 700 !important;
}

.cart_totals .order-total th {
  text-transform: uppercase;
}

.cart_totals .order-total td,
.cart_totals .order-total td * {
  text-transform: none !important;
}

.cart_totals .wc-proceed-to-checkout {
  display: flex;
  justify-content: flex-end;
  padding: var(--kosik-gap) 0 0 !important;
}

/* Pod 1100 px je pevná hlavička vyšší (od 768 px 134 px, menu se zalomí). Nadpis Košík
   začíná jako na tabletu na 160 px (Bricks má od 992 px 120 px). */
@media (992px <= width < 1100px) {
  body.woocommerce-cart #brx-content > .brxe-section:first-child {
    padding-top: 160px;
  }
}

/* --- Tablet a mobil: foto vlevo, pod názvem množství, cena a mezisoučet s popisky --- */
@media (max-width: 991px) {
  .woocommerce-cart-form__contents thead {
    display: none !important;
  }

  .woocommerce-cart-form__contents tr.cart_item {
    grid-template-columns: 64px minmax(0, 1fr) 28px;
    column-gap: 16px;
    row-gap: .8rem;
  }

  :root {
    --kosik-foto: 64px;
  }

  .woocommerce-cart-form__contents .product-thumbnail {
    grid-column: 1;
    grid-row: 1 / span 4;
  }

  .woocommerce-cart-form__contents .product-name {
    grid-column: 2;
    grid-row: 1;
  }

  .woocommerce-cart-form__contents .product-remove {
    grid-column: 3;
    grid-row: 1;
  }

  .woocommerce-cart-form__contents .product-quantity,
  .woocommerce-cart-form__contents .product-price,
  .woocommerce-cart-form__contents .product-subtotal {
    grid-column: 2;
    display: flex !important;
    justify-content: space-between;
    align-items: center;
    text-align: right !important;
  }

  .woocommerce-cart-form__contents .product-quantity::before,
  .woocommerce-cart-form__contents .product-price::before,
  .woocommerce-cart-form__contents .product-subtotal::before {
    content: attr(data-title);
    float: none !important;
    font-family: "Alte haas", sans-serif;
    font-size: max(12px, 1.1rem);
    font-weight: 500;
    line-height: 1.25;
    text-transform: uppercase;
    letter-spacing: .05em;
  }

  /* Mezisoučet zůstává s částkou na jednom řádku i na 320 px (delší popisek než Cena) */
  .woocommerce-cart-form__contents td.product-subtotal {
    flex-wrap: nowrap !important;
    column-gap: calc(var(--space-1) / 2) !important;
  }

  .woocommerce-cart-form__contents td.product-subtotal::before {
    margin-right: 0 !important;
  }

  .woocommerce-cart-form__contents td.product-subtotal .amount {
    white-space: nowrap;
  }

  .woocommerce-cart-form__contents td.product-quantity .quantity {
    flex: 0 0 auto !important;
    margin: 0 0 0 auto !important;
  }

  /* Množství u merche zůstává s popiskem na jednom řádku jako Cena a Mezisoučet */
  .woocommerce-cart-form__contents td.product-quantity {
    flex-wrap: nowrap !important;
    column-gap: calc(var(--space-1) / 2) !important;
  }

  .woocommerce-cart-form__contents td.product-quantity::before {
    margin-right: 0 !important;
  }

  .woocommerce-cart-form__contents .product-name::before,
  .woocommerce-cart-form__contents .product-thumbnail::before,
  .woocommerce-cart-form__contents .product-remove::before {
    display: none !important;
  }

  .woocommerce-cart-form__contents td.actions {
    padding-left: 0 !important;
  }

  .woocommerce-cart-form .coupon #coupon_code {
    flex: 1;
    width: auto !important;
  }

  .cart_totals {
    padding-right: 0;
  }

  .cart_totals .checkout-button {
    width: 100%;
  }
}

/* Na nejužších displejích je volič množství užší, ať se vejde vedle popisku */
@media (max-width: 374px) {
  .woocommerce-cart-form .quantity {
    gap: calc(var(--space-1) / 2) !important;
    padding: calc(var(--space-1) / 2) !important;
  }
}
