/*
Theme Name: PrintPlace Tech
Theme URI: https://printplace3d.com/
Description: A light, technical WooCommerce child theme for PrintPlace3D, built on Twenty Twenty-Five with a conversion-focused product experience.
Author: PrintPlace3D
Version: 0.1.0
Requires at least: 6.6
Requires PHP: 7.4
Template: twentytwentyfive
Text Domain: printplace-tech
*/

:root {
  --pp3d-radius-xs: 8px;
  --pp3d-radius-sm: 12px;
  --pp3d-radius-md: 18px;
  --pp3d-radius-lg: 24px;
  --pp3d-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.04), 0 8px 28px rgba(15, 23, 42, 0.05);
  --pp3d-shadow-md: 0 18px 50px rgba(15, 23, 42, 0.09);
  --pp3d-ring: 0 0 0 4px rgba(37, 99, 235, 0.16);
  --pp3d-transition: 180ms cubic-bezier(.2,.8,.2,1);
}

html { scroll-behavior: smooth; }

body {
  background:
    radial-gradient(circle at 8% 4%, rgba(6, 182, 212, 0.08), transparent 26rem),
    radial-gradient(circle at 92% 14%, rgba(37, 99, 235, 0.07), transparent 30rem),
    var(--wp--preset--color--surface-soft);
  color: var(--wp--preset--color--ink);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

::selection {
  background: rgba(37, 99, 235, 0.18);
  color: var(--wp--preset--color--ink);
}

a { text-underline-offset: 0.18em; }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--wp--preset--color--primary);
  outline-offset: 3px;
  box-shadow: var(--pp3d-ring);
}

/* Header */
.pp3d-header-shell {
  position: sticky;
  top: 0;
  z-index: 100;
  margin-block-start: 0 !important;
  border-bottom: 1px solid rgba(148, 163, 184, 0.22);
  background: rgba(255, 255, 255, 0.86);
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
}

.admin-bar .pp3d-header-shell { top: 32px; }

.pp3d-header {
  min-height: 76px;
  gap: clamp(0.9rem, 2vw, 1.8rem);
}

.pp3d-brand { gap: 0.7rem; }

.pp3d-brand .wp-block-site-logo img {
  border-radius: 11px;
  box-shadow: 0 8px 22px rgba(37, 99, 235, 0.16);
}

.pp3d-brand .wp-block-site-title {
  margin: 0;
  font-weight: 760;
  letter-spacing: -0.035em;
}

.pp3d-brand .wp-block-site-title a { text-decoration: none; }

.pp3d-header-actions { gap: 0.55rem; }

.pp3d-header .wp-block-navigation-item__content {
  border-radius: 999px;
  padding: 0.55rem 0.8rem;
  color: var(--wp--preset--color--ink);
  font-size: 0.92rem;
  font-weight: 620;
  text-decoration: none;
  transition: background var(--pp3d-transition), color var(--pp3d-transition);
}

.pp3d-header .wp-block-navigation-item__content:hover {
  background: var(--wp--preset--color--primary-soft);
  color: var(--wp--preset--color--primary-dark);
}

.pp3d-header .wc-block-mini-cart__button {
  min-width: 44px;
  min-height: 44px;
  border: 1px solid var(--wp--preset--color--border);
  border-radius: 999px;
  background: #fff;
  transition: transform var(--pp3d-transition), box-shadow var(--pp3d-transition), border-color var(--pp3d-transition);
}

.pp3d-header .wc-block-mini-cart__button:hover {
  transform: translateY(-1px);
  border-color: #c3d1e5;
  box-shadow: var(--pp3d-shadow-sm);
}

/* General page rhythm */
main.wp-block-group,
main.wp-block-post-content,
.woocommerce main {
  padding-block: clamp(1.6rem, 4vw, 3.2rem);
}

.wp-block-post-title,
.woocommerce-products-header__title,
.woocommerce h1.product_title {
  letter-spacing: -0.045em;
  text-wrap: balance;
}

.woocommerce-products-header__title.page-title {
  margin-bottom: clamp(1.5rem, 3vw, 2.4rem);
  font-size: clamp(2.35rem, 6vw, 4.8rem);
  line-height: 0.98;
}

/* Buttons */
:where(.wp-element-button, .wp-block-button__link, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .wc-block-components-button) {
  border: 0;
  border-radius: 12px;
  font-weight: 680;
  letter-spacing: -0.012em;
  transition: transform var(--pp3d-transition), box-shadow var(--pp3d-transition), background var(--pp3d-transition), color var(--pp3d-transition);
}

:where(.wp-element-button, .wp-block-button__link, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .wc-block-components-button):hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 28px rgba(37, 99, 235, 0.18);
}

:where(.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt, .single_add_to_cart_button, .wc-block-components-button:not(.is-link)) {
  background: linear-gradient(135deg, var(--wp--preset--color--primary), var(--wp--preset--color--primary-dark));
  color: #fff;
}

/* Forms / configurators */
:where(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="search"], input[type="url"], input[type="password"], select, textarea) {
  min-height: 46px;
  border: 1px solid var(--wp--preset--color--border);
  border-radius: 11px;
  background: #fff;
  color: var(--wp--preset--color--ink);
  padding: 0.7rem 0.85rem;
  font: inherit;
  transition: border-color var(--pp3d-transition), box-shadow var(--pp3d-transition), background var(--pp3d-transition);
}

:where(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="search"], input[type="url"], input[type="password"], select, textarea):hover {
  border-color: #b8c7dc;
}

:where(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="search"], input[type="url"], input[type="password"], select, textarea):focus {
  border-color: var(--wp--preset--color--primary);
  outline: 0;
  box-shadow: var(--pp3d-ring);
}

input[type="color"] {
  width: 48px;
  height: 48px;
  border: 1px solid var(--wp--preset--color--border);
  border-radius: 12px;
  background: #fff;
  padding: 4px;
  cursor: pointer;
}

label { font-weight: 620; }

/* Shop controls */
.woocommerce .woocommerce-result-count {
  color: var(--wp--preset--color--muted);
  font-size: 0.92rem;
}

.woocommerce .woocommerce-ordering select {
  min-width: min(100%, 220px);
  background-color: #fff;
}

/* Product grids: supports legacy loops and block Product Collection. */
.woocommerce ul.products,
.wc-block-product-template,
.wp-block-woocommerce-product-collection .wc-block-product-template {
  gap: clamp(1rem, 2.4vw, 1.7rem);
}

.woocommerce ul.products li.product,
.wc-block-product-template .wc-block-product,
.wp-block-woocommerce-product-collection .wc-block-product {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(203, 213, 225, 0.82);
  border-radius: var(--pp3d-radius-md);
  background: rgba(255, 255, 255, 0.93);
  padding: clamp(0.8rem, 2vw, 1rem);
  box-shadow: var(--pp3d-shadow-sm);
  transition: transform var(--pp3d-transition), box-shadow var(--pp3d-transition), border-color var(--pp3d-transition);
}

.woocommerce ul.products li.product:hover,
.wc-block-product-template .wc-block-product:hover,
.wp-block-woocommerce-product-collection .wc-block-product:hover {
  transform: translateY(-4px);
  border-color: rgba(148, 163, 184, 0.7);
  box-shadow: var(--pp3d-shadow-md);
}

.woocommerce ul.products li.product img,
.wc-block-components-product-image img,
.wp-block-woocommerce-product-image img {
  border-radius: 14px;
  background: var(--wp--preset--color--surface-soft);
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.wc-block-product-template .wp-block-post-title,
.wp-block-woocommerce-product-title {
  margin-top: 0.9rem;
  font-size: clamp(1rem, 2vw, 1.15rem);
  line-height: 1.25;
  letter-spacing: -0.02em;
}

.woocommerce ul.products li.product .price,
.wp-block-woocommerce-product-price,
.wc-block-components-product-price {
  color: var(--wp--preset--color--ink);
  font-weight: 740;
}

.woocommerce ul.products li.product .button {
  width: 100%;
  box-sizing: border-box;
  margin-top: 0.9rem;
  text-align: center;
}

/* Single product */
.single-product .wp-site-blocks > main,
.single-product main.wp-block-group {
  padding-top: clamp(1.1rem, 3vw, 2.2rem);
}

.woocommerce .woocommerce-breadcrumb,
.wp-block-woocommerce-breadcrumbs {
  color: var(--wp--preset--color--muted);
  font-size: 0.86rem;
}

.woocommerce div.product,
.single-product .product {
  --pp3d-product-gap: clamp(1.5rem, 4vw, 4rem);
}

.woocommerce div.product div.images,
.wp-block-woocommerce-product-image-gallery,
.wp-block-woocommerce-product-gallery {
  border: 1px solid var(--wp--preset--color--border);
  border-radius: var(--pp3d-radius-lg);
  background: linear-gradient(160deg, #fff, #f6f9fd);
  padding: clamp(0.7rem, 2vw, 1.15rem);
  box-shadow: var(--pp3d-shadow-sm);
}

.woocommerce div.product div.images img,
.single-product .wp-block-post-featured-image img {
  border-radius: 16px;
}

.woocommerce div.product .summary,
.single-product .wp-block-woocommerce-product-summary {
  border: 1px solid var(--wp--preset--color--border);
  border-radius: var(--pp3d-radius-lg);
  background: rgba(255, 255, 255, 0.94);
  padding: clamp(1.15rem, 3.2vw, 2rem);
  box-shadow: var(--pp3d-shadow-sm);
}

.woocommerce div.product p.price,
.woocommerce div.product span.price,
.single-product .wp-block-woocommerce-product-price {
  color: var(--wp--preset--color--primary-dark);
  font-size: clamp(1.4rem, 3vw, 2rem);
  font-weight: 780;
  letter-spacing: -0.03em;
}

.woocommerce div.product form.cart,
.single-product form.cart {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 0.75rem;
  margin-top: 1.25rem;
}

.woocommerce div.product form.cart .variations,
.single-product form.cart .variations {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 0.65rem;
}

.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td {
  padding: 0;
  text-align: left;
  vertical-align: middle;
}

.woocommerce div.product form.cart .quantity .qty,
.single-product .quantity .qty {
  width: 76px;
  min-height: 50px;
}

.woocommerce div.product form.cart .button,
.single-product .single_add_to_cart_button {
  min-height: 50px;
  padding-inline: clamp(1.15rem, 3vw, 1.7rem);
  flex: 1 1 210px;
}

.woocommerce div.product .product_meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 1rem;
  color: var(--wp--preset--color--muted);
  font-size: 0.88rem;
}

/* Product tabs + 3D viewer area */
.woocommerce div.product .woocommerce-tabs,
.wp-block-woocommerce-product-details {
  margin-top: clamp(2rem, 5vw, 4.5rem);
  border: 1px solid var(--wp--preset--color--border);
  border-radius: var(--pp3d-radius-lg);
  background: rgba(255, 255, 255, 0.94);
  padding: clamp(1rem, 3vw, 1.8rem);
  box-shadow: var(--pp3d-shadow-sm);
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
  display: flex;
  gap: 0.45rem;
  overflow-x: auto;
  margin: 0 0 1.4rem;
  padding: 0;
  border: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }

.woocommerce div.product .woocommerce-tabs ul.tabs li {
  margin: 0;
  border: 0;
  border-radius: 999px;
  background: var(--wp--preset--color--surface-soft);
  padding: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  display: block;
  padding: 0.6rem 0.9rem;
  color: var(--wp--preset--color--muted);
  font-weight: 650;
  text-decoration: none;
  white-space: nowrap;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
  background: var(--wp--preset--color--primary-soft);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color: var(--wp--preset--color--primary-dark);
}

.woocommerce-Tabs-panel model-viewer,
.woocommerce-Tabs-panel canvas,
.woocommerce-Tabs-panel iframe,
.single-product model-viewer,
.single-product canvas {
  max-width: 100%;
  border: 1px solid var(--wp--preset--color--border);
  border-radius: 16px;
  background:
    linear-gradient(rgba(148,163,184,.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(148,163,184,.08) 1px, transparent 1px),
    #fbfdff;
  background-size: 24px 24px;
}

/* Notices */
:where(.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner) {
  border: 1px solid var(--wp--preset--color--border) !important;
  border-radius: 14px !important;
  background: #fff !important;
  box-shadow: var(--pp3d-shadow-sm);
}

.woocommerce-message { border-left: 4px solid var(--wp--preset--color--success) !important; }
.woocommerce-info { border-left: 4px solid var(--wp--preset--color--primary) !important; }
.woocommerce-error { border-left: 4px solid #dc2626 !important; }

/* Cart / checkout blocks */
.wc-block-cart,
.wc-block-checkout {
  gap: clamp(1.2rem, 3vw, 2rem);
}

:where(.wc-block-cart-items, .wc-block-components-sidebar, .wc-block-checkout__main) {
  border-radius: var(--pp3d-radius-md);
}

.wc-block-components-sidebar,
.wc-block-checkout__main {
  border: 1px solid var(--wp--preset--color--border);
  background: rgba(255,255,255,.94);
  padding: clamp(1rem, 3vw, 1.5rem);
  box-shadow: var(--pp3d-shadow-sm);
}

.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input {
  border-radius: 11px !important;
}

.wc-block-components-totals-wrapper {
  border-color: var(--wp--preset--color--border);
}

/* Account */
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
  border: 1px solid var(--wp--preset--color--border);
  border-radius: var(--pp3d-radius-md);
  background: #fff;
  padding: 1rem;
  box-sizing: border-box;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation a {
  display: block;
  border-radius: 10px;
  padding: 0.65rem 0.75rem;
  text-decoration: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation .is-active a {
  background: var(--wp--preset--color--primary-soft);
  color: var(--wp--preset--color--primary-dark);
  font-weight: 650;
}

/* Optional theme patterns */
.pp3d-hero {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(148,163,184,.28);
  border-radius: 32px;
  background:
    linear-gradient(rgba(255,255,255,.04), rgba(255,255,255,.04)),
    radial-gradient(circle at 80% 20%, rgba(34,211,238,.22), transparent 28rem),
    linear-gradient(135deg, #0f172a, #172554 60%, #0f3d68);
  color: #fff;
  box-shadow: 0 28px 70px rgba(15, 23, 42, 0.18);
}

.pp3d-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .32;
  background-image:
    linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
  background-size: 34px 34px;
  mask-image: linear-gradient(to left, #000, transparent 68%);
}

.pp3d-hero > * { position: relative; z-index: 1; }

.pp3d-kicker {
  width: fit-content;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  padding: .38rem .72rem;
  color: #dbeafe;
  font-size: .82rem;
  font-weight: 650;
  letter-spacing: .04em;
}

.pp3d-trustbar {
  border: 1px solid var(--wp--preset--color--border);
  border-radius: var(--pp3d-radius-md);
  background: rgba(255,255,255,.8);
  box-shadow: var(--pp3d-shadow-sm);
}

/* Footer */
.pp3d-footer-shell {
  margin-block-start: clamp(3rem, 7vw, 6rem) !important;
  border-top: 1px solid var(--wp--preset--color--border);
  background: rgba(255, 255, 255, 0.72);
}

.pp3d-footer { padding-block: clamp(2rem, 5vw, 4rem); }
.pp3d-footer .wp-block-site-title { font-weight: 750; letter-spacing: -0.03em; }
.pp3d-footer a { text-decoration: none; }
.pp3d-footer a:hover { text-decoration: underline; }
.pp3d-footer-note { color: var(--wp--preset--color--muted); font-size: .9rem; }

@media (max-width: 782px) {
  .admin-bar .pp3d-header-shell { top: 46px; }
  .pp3d-header { min-height: 66px; }
  .pp3d-brand .wp-block-site-title { font-size: 1rem; }
  .pp3d-header .wp-block-navigation__responsive-container.is-menu-open {
    padding: 1.1rem;
    background: rgba(255,255,255,.98);
  }
  .pp3d-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    padding-top: 4rem;
  }
  .woocommerce .woocommerce-ordering,
  .woocommerce .woocommerce-result-count { float: none; }
  .woocommerce .woocommerce-ordering { margin-bottom: 1.4rem; }
  .woocommerce .woocommerce-ordering select { width: 100%; }
  .woocommerce div.product .summary { margin-top: 1rem; }
  .wc-block-components-sidebar,
  .wc-block-checkout__main { padding: 1rem; }
}

@media (max-width: 600px) {
  .pp3d-header-actions { gap: 0.25rem; }
  .pp3d-header .wc-block-mini-cart__button { min-width: 40px; min-height: 40px; }
  .woocommerce ul.products.columns-2 li.product,
  .woocommerce ul.products li.product { width: 100%; margin-right: 0; }
  .woocommerce div.product .woocommerce-tabs,
  .wp-block-woocommerce-product-details { border-radius: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
