/* Ostoskori, kassa ja kiitossivu – sama kieli kuin lahjakorttilomakkeessa.
   Elementorissa sisältö on kontissa, jolla on luokka .pgc-woo (lime-kerma pinta). */
.pgc-woo {
  --pgc-ink: #181818;
  --pgc-muted: #55594f;
  --pgc-field: #ffffff;
  --pgc-line: rgba(24, 24, 24, .16);
  --pgc-accent: #1800AD;
  --pgc-error: #b3261e;
  --pgc-serif: "Playfair Display", Georgia, serif;
  /* WooCommercen omat lomakemuuttujat */
  --wc-form-border-color: rgba(24, 24, 24, .16);
  --wc-form-border-radius: 10px;
  --wc-form-border-width: 1.5px;
  --wc-form-color-background: #ffffff;
  --wc-form-color-text: #181818;
  color: var(--pgc-ink);
  font-family: Roboto, system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.5;
}
.pgc-woo .woocommerce { color: var(--pgc-ink); }
.pgc-woo h2, .pgc-woo h3 {
  font-family: var(--pgc-serif); font-weight: 500; font-size: 22px; letter-spacing: 0; text-transform: none;
  color: var(--pgc-ink); margin: 0 0 14px;
}
.pgc-woo a { color: var(--pgc-accent); }

/* ── Vaiheet ── */
.pgc-steps { list-style: none; margin: 0 0 28px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 24px; font-size: 14px; font-weight: 600; }
.pgc-step { display: flex; align-items: center; gap: 8px; color: var(--pgc-muted, #55594f); }
.pgc-step a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.pgc-step-n { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; border: 1.5px solid currentColor; font-size: 13px; }
.pgc-step--current { color: var(--pgc-ink, #181818); }
.pgc-step--current .pgc-step-n { background: var(--pgc-accent, #1800AD); border-color: var(--pgc-accent, #1800AD); color: #fff; }
.pgc-step--done .pgc-step-n { background: var(--pgc-ink, #181818); border-color: var(--pgc-ink, #181818); color: #fff; }

/* ── Kentät ── */
.pgc-woo .form-row, .pgc-woo form .form-row { margin: 0 0 14px; padding: 0; }
.pgc-woo .form-row label { display: block; margin: 0 0 6px; font-size: 15px; font-weight: 600; color: var(--pgc-ink); line-height: 1.4; }
.pgc-woo .form-row .required { color: var(--pgc-muted); text-decoration: none; border: 0; }
.pgc-woo .form-row .optional { color: var(--pgc-muted); font-weight: 400; }
.pgc-woo input.input-text, .pgc-woo textarea, .pgc-woo select,
.pgc-woo form .form-row .input-text, .pgc-woo form .form-row select, .pgc-woo form .form-row textarea,
.pgc-woo .select2-container .select2-selection--single {
  width: 100%; min-height: 50px; margin: 0; padding: 12px 14px;
  border: 1.5px solid var(--pgc-line); border-radius: 10px; background: var(--pgc-field);
  color: var(--pgc-ink); font: inherit; font-size: 17px; box-shadow: none;
}
.pgc-woo .select2-container .select2-selection--single { display: flex; align-items: center; padding: 0 10px; }
.pgc-woo .select2-container .select2-selection__rendered { color: var(--pgc-ink); padding: 0 4px; line-height: 1.4; }
.pgc-woo .select2-container .select2-selection__arrow { top: 50%; transform: translateY(-50%); right: 8px; }
.pgc-woo input.input-text:focus, .pgc-woo textarea:focus, .pgc-woo select:focus,
.pgc-woo form .form-row .input-text:focus, .pgc-woo form .form-row select:focus,
.pgc-woo .select2-container--focus .select2-selection--single {
  outline: none; border-color: var(--pgc-accent); box-shadow: 0 0 0 3px rgba(24, 0, 173, .18);
}
.pgc-woo .woocommerce-invalid input.input-text { border-color: var(--pgc-error); }
.pgc-woo form .form-row-first, .pgc-woo form .form-row-last { width: calc(50% - 6px); }

/* ── Painikkeet ── */
.pgc-woo .button, .pgc-woo button.button, .pgc-woo a.button, .pgc-woo #place_order, .pgc-woo .checkout-button {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 52px; padding: 0 28px; border: 0; border-radius: 999px;
  background: var(--pgc-accent); color: #fff;
  font-family: inherit; font-size: 16px; font-weight: 600; letter-spacing: 0; text-transform: none; text-decoration: none;
  cursor: pointer; transition: background-color .15s ease;
}
.pgc-woo .button:hover, .pgc-woo #place_order:hover, .pgc-woo .checkout-button:hover { background: #12008a; color: #fff; }
.pgc-woo .button:focus-visible, .pgc-woo #place_order:focus-visible { outline: 3px solid var(--pgc-ink); outline-offset: 3px; }
.pgc-woo #place_order, .pgc-woo .checkout-button { width: 100%; min-height: 58px; font-size: 17px; }

/* ── Ilmoitukset ── */
.pgc-woo .woocommerce-error, .pgc-woo .woocommerce-info, .pgc-woo .woocommerce-message {
  margin: 0 0 20px; padding: 14px 16px; border: 0; border-radius: 12px; background: #fff; color: var(--pgc-ink); font-size: 15px; list-style: none;
}
.pgc-woo .woocommerce-error { background: #fdecea; color: var(--pgc-error); }
.pgc-woo .woocommerce-error::before, .pgc-woo .woocommerce-info::before, .pgc-woo .woocommerce-message::before { display: none; }
.pgc-checkout-note { margin: 0 0 20px; font-size: 15px; color: var(--pgc-muted); }

/* ── Kassa: lomake vasemmalla, yhteenveto oikealla ── */
.pgc-woo .pgc-checkout-cols {
  display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); grid-template-rows: auto 1fr; gap: 0 56px; align-items: start;
}
.pgc-woo .pgc-checkout-cols #customer_details { grid-column: 1; grid-row: 1 / span 2; }
.pgc-woo .pgc-checkout-cols #order_review_heading { grid-column: 2; grid-row: 1; margin-top: 0; }
.pgc-woo .pgc-checkout-cols #order_review { grid-column: 2; grid-row: 2; position: sticky; top: 24px; }
.pgc-woo .col2-set { width: 100%; display: block; }
.pgc-woo .col2-set .col-1, .pgc-woo .col2-set .col-2 { float: none; width: 100%; max-width: none; padding: 0; }
.pgc-woo .col2-set .col-2:empty, .pgc-woo .woocommerce-additional-fields:empty { display: none; }
.pgc-woo .woocommerce-billing-fields h3 { margin-top: 0; }
.pgc-woo .woocommerce-form-login-toggle .woocommerce-info { background: transparent; padding: 0; }

/* Yhteenvetotaulukko */
.pgc-woo table.shop_table {
  width: 100%; margin: 0 0 16px; border: 0; border-collapse: collapse; border-radius: 0; background: transparent; font-size: 15px;
}
.pgc-woo table.shop_table th, .pgc-woo table.shop_table td {
  padding: 12px 0; border: 0; border-top: 1px solid var(--pgc-line); background: transparent; text-align: left; vertical-align: top; font-weight: 400;
}
.pgc-woo table.shop_table thead th { border-top: 0; font-size: 13px; color: var(--pgc-muted); font-weight: 600; text-transform: none; }
.pgc-woo table.shop_table td:last-child, .pgc-woo table.shop_table th:last-child { text-align: right; }
.pgc-woo table.shop_table .product-name { font-weight: 600; }
.pgc-woo table.shop_table .product-quantity { display: none; }
.pgc-woo table.shop_table .order-total th, .pgc-woo table.shop_table .order-total td { font-size: 18px; font-weight: 700; }
.pgc-woo table.shop_table dl.variation, .pgc-woo .wc-item-meta {
  margin: 6px 0 0; padding: 0; display: grid; grid-template-columns: auto 1fr; gap: 2px 8px; font-size: 13px; font-weight: 400; color: var(--pgc-muted); list-style: none;
}
.pgc-woo table.shop_table dl.variation dt, .pgc-woo table.shop_table dl.variation dd, .pgc-woo .wc-item-meta li, .pgc-woo .wc-item-meta p { margin: 0; padding: 0; float: none; }
.pgc-woo table.shop_table dl.variation dd p { margin: 0; }
.pgc-woo .wc-item-meta { display: block; }
.pgc-woo .wc-item-meta .wc-item-meta-label { font-weight: 600; float: none; }
.pgc-add-another td { text-align: left !important; font-size: 14px; font-weight: 600; }

/* Maksutapa */
.pgc-woo #payment { background: #fff; border-radius: 14px; padding: 4px 0 0; }
.pgc-woo #payment ul.payment_methods { margin: 0; padding: 12px 16px; border: 0; list-style: none; }
.pgc-woo #payment ul.payment_methods li { margin: 0; line-height: 1.5; }
.pgc-woo #payment ul.payment_methods li label { font-weight: 600; }
.pgc-woo #payment div.payment_box { margin: 10px 0 0; padding: 0; background: transparent; color: var(--pgc-ink); font-size: 14px; }
.pgc-woo #payment div.payment_box::before { display: none; }
.pgc-woo #payment .place-order { margin: 0; padding: 16px; border-top: 1px solid var(--pgc-line); }
.pgc-woo .woocommerce-privacy-policy-text, .pgc-woo .woocommerce-terms-and-conditions-wrapper { font-size: 13px; color: var(--pgc-muted); margin-bottom: 12px; }

/* ── Ostoskori ── */
.pgc-woo table.cart .product-thumbnail, .pgc-woo table.cart .product-quantity,
.pgc-woo table.cart button[name="update_cart"], .pgc-woo table.cart .actions .coupon { display: none; }
.pgc-woo table.cart td.actions { padding: 0; border: 0; }
.pgc-woo table.cart .product-remove a.remove {
  display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 50%;
  color: var(--pgc-muted) !important; font-size: 20px; line-height: 1; background: transparent;
}
.pgc-woo table.cart .product-remove a.remove:hover { background: #fdecea; color: var(--pgc-error) !important; }
.pgc-woo .cart-collaterals { display: flex; justify-content: flex-end; margin-top: 12px; }
.pgc-woo .cart-collaterals .cart_totals { float: none; width: 100%; max-width: 420px; }
.pgc-woo .wc-proceed-to-checkout { padding: 8px 0 0; }
.pgc-woo .cart-empty { text-align: center; background: transparent !important; font-size: 18px !important; padding: 16px 0 0 !important; }
.pgc-woo .return-to-shop { text-align: center; margin: 8px 0 0; }

/* ── Kiitossivu ── */
.pgc-thanks { margin: 0 0 32px; padding: 28px; background: #fff; border-radius: 18px; }
.pgc-thanks h2 { font-family: "Playfair Display", Georgia, serif; font-size: 28px; font-weight: 500; margin: 0 0 16px; color: #181818; }
.pgc-thanks-list { list-style: none; margin: 0 0 16px; padding: 0; display: grid; gap: 12px; }
.pgc-thanks-list li { display: flex; gap: 16px; align-items: center; padding: 14px 16px; background: #E9F7C3; border-radius: 12px; }
.pgc-thanks-amount { font-family: "Playfair Display", Georgia, serif; font-size: 24px; color: #1800AD; min-width: 80px; font-variant-numeric: tabular-nums; }
.pgc-thanks-status { font-size: 14px; color: #55594f; }
.pgc-thanks-note { margin: 0; font-size: 14px; color: #55594f; }
.pgc-woo .pgc-thanks ~ .woocommerce-thankyou-order-received,
.pgc-woo .pgc-thanks ~ .woocommerce-customer-details { display: none; }
.pgc-woo ul.woocommerce-order-overview {
  list-style: none; margin: 0 0 32px; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px;
}
.pgc-woo ul.woocommerce-order-overview li {
  margin: 0; padding: 0; border: 0; font-size: 13px; color: var(--pgc-muted); text-transform: none; float: none;
}
.pgc-woo ul.woocommerce-order-overview li strong { display: block; font-size: 16px; color: var(--pgc-ink); margin-top: 2px; }
.pgc-woo ul.woocommerce-order-overview::before, .pgc-woo ul.woocommerce-order-overview::after { display: none; }

@media (max-width: 900px) {
  .pgc-woo .pgc-checkout-cols { display: block; }
  .pgc-woo .pgc-checkout-cols #order_review { position: static; }
  .pgc-woo .pgc-checkout-cols #order_review_heading { margin-top: 12px; }
}
@media (max-width: 480px) {
  .pgc-woo form .form-row-first, .pgc-woo form .form-row-last { width: 100%; float: none; }
  .pgc-thanks { padding: 20px 16px; }
  .pgc-steps { gap: 6px 12px; font-size: 13px; }
  .pgc-step-n { width: 24px; height: 24px; }
  .pgc-woo ul.woocommerce-order-overview { grid-template-columns: 1fr 1fr; }
}

/* ── Teeman ja WooCommercen oletusten ohitukset (niillä on korkeampi spesifisyys) ── */
.pgc-woo .woocommerce a.button, .pgc-woo .woocommerce button.button, .pgc-woo .woocommerce input.button,
.pgc-woo .woocommerce a.button.alt, .pgc-woo .woocommerce button.button.alt, .pgc-woo .woocommerce #place_order,
.pgc-woo .woocommerce a.checkout-button {
  background: #1800AD !important; color: #fff !important; border: 0 !important; border-radius: 999px !important;
  text-transform: none !important; letter-spacing: 0 !important; font-weight: 600 !important; opacity: 1;
}
.pgc-woo .woocommerce a.button:hover, .pgc-woo .woocommerce button.button:hover, .pgc-woo .woocommerce #place_order:hover,
.pgc-woo .woocommerce a.checkout-button:hover { background: #12008a !important; }
.pgc-woo table.cart button[name="update_cart"], .pgc-woo table.cart .actions .coupon,
.pgc-woo table.cart .product-thumbnail, .pgc-woo table.cart .product-quantity { display: none !important; }
.pgc-woo .woocommerce-error, .pgc-woo .woocommerce-info, .pgc-woo .woocommerce-message,
.pgc-woo .woocommerce-error li, .pgc-woo .woocommerce-message li { text-transform: none !important; }
.pgc-woo .pgc-checkout-note { padding: 0 !important; }

/* Stripen pikamaksu (Apple Pay / Google Pay) on piilotettu sivuston Lisä-CSS:ssä, joten myös sen
   "— OR —" -erotin piilotetaan. Jos pikamaksu otetaan käyttöön, poista tämä sääntö samalla. */
#wc-stripe-express-checkout-button-separator { display: none !important; }
