/* Tap3D catalogue (/models/), on the Warm Maker tokens from the theme. */

.t3d-catalogue h1 { margin-block-start: 0.75rem; }
.tap3d-badge a { color: inherit; text-decoration: none; }

/* Filter bar */
.t3d-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem;
	margin-top: 2rem;
	padding: 0.75rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tap3d-radius-m);
	background: var(--wp--preset--color--card);
}
.t3d-filters label { flex: 1 1 10rem; margin: 0; }
.t3d-filters__search { flex: 2 1 14rem !important; }
.t3d-filters input,
.t3d-filters select {
	box-sizing: border-box;
	width: 100%;
	min-height: 2.75rem;
	padding: 0.55rem 0.9rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background: var(--tap3d-field);
	color: var(--wp--preset--color--contrast);
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
}
.t3d-filters select { appearance: none; padding-right: 2.2rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237A6E62' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 0.85rem center; background-size: 1rem; }
.t3d-filters input:focus,
.t3d-filters select:focus { outline: 2px solid var(--wp--preset--color--accent); outline-offset: 1px; }
.t3d-filters .tap3d-btn { min-height: 2.75rem; padding-block: 0.55rem; }
.t3d-filters__clear { color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--x-small); }
.t3d-filters__clear:hover { color: var(--wp--preset--color--accent); }

.t3d-count { margin-top: 1.25rem !important; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--x-small); }

/* Cards */
.t3d-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr));
	gap: 1.25rem;
	margin: 1rem 0 0;
	padding: 0;
	list-style: none;
}
.t3d-card { display: flex; flex-direction: column; margin: 0 !important; }
.t3d-card__image { display: block; aspect-ratio: 3 / 2; background: var(--wp--preset--color--sand); overflow: hidden; }
.t3d-card__image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; }
.t3d-card:hover .t3d-card__image img { transform: scale(1.03); }
.t3d-card .tap3d-card__body { display: flex; flex: 1; flex-direction: column; }
.t3d-card__badge a {
	display: inline-block;
	padding: 0.2rem 0.65rem;
	border-radius: 999px;
	background: var(--wp--preset--color--accent-soft);
	color: var(--tap3d-accent-dark);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	text-decoration: none;
}
.t3d-card__title { font-size: var(--wp--preset--font-size--medium); line-height: 1.25; }
.t3d-card__title a { color: inherit; text-decoration: none; }
.t3d-card__title a::after { content: ""; position: absolute; inset: 0; } /* Whole card clickable. */
.t3d-card { position: relative; }
.t3d-card__badge { position: relative; z-index: 1; }
.t3d-card__title a:hover { color: var(--wp--preset--color--accent); }
.t3d-card__excerpt { color: var(--tap3d-muted-strong); font-size: var(--wp--preset--font-size--small); }
.t3d-card__foot { margin-top: auto !important; padding-top: 0.6rem; }
.t3d-card__price { color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--x-small); }
.t3d-card__price strong { color: var(--wp--preset--color--contrast); font-family: var(--wp--preset--font-family--heading); font-size: var(--wp--preset--font-size--medium); }
.t3d-card__price.is-free { color: var(--tap3d-green-text); font-weight: 700; }

.t3d-placeholder { display: grid; place-items: center; width: 100%; height: 100%; min-height: 10rem; color: #C4A98F; }
.t3d-placeholder svg { width: 30%; max-width: 6rem; }

.t3d-pages { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.4rem; margin-top: 2.5rem; }
.t3d-pages .page-numbers { min-width: 2.5rem; padding: 0.5rem 0.8rem; border: 1px solid var(--wp--preset--color--line); border-radius: 999px; background: var(--wp--preset--color--card); color: inherit; text-align: center; text-decoration: none; font-size: var(--wp--preset--font-size--small); }
.t3d-pages .page-numbers.current { border-color: var(--wp--preset--color--accent); background: var(--wp--preset--color--accent); color: #fff; }
.t3d-empty { margin-top: 1.5rem !important; padding: 2rem; border-radius: var(--tap3d-radius-m); background: var(--wp--preset--color--sand); text-align: center; }

/* Model page */
.t3d-model { padding-top: clamp(1.5rem, 4vw, 2.5rem); padding-bottom: clamp(3rem, 6vw, 5rem); }
.t3d-crumbs { color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--x-small); }
.t3d-crumbs a { color: var(--wp--preset--color--accent); text-decoration: none; }
.t3d-model__top { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(1.25rem, 3vw, 2rem); align-items: start; margin-top: clamp(1.5rem, 3vw, 2rem); }
@media (max-width: 860px) { .t3d-model__top { grid-template-columns: 1fr; } }

.t3d-media__stage > * { margin: 0; }
.t3d-viewer,
.t3d-media__image {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: var(--tap3d-radius-l);
	background: var(--wp--preset--color--sand);
}
.t3d-viewer[hidden], .t3d-media__image[hidden] { display: none; }
.t3d-media__image img, .t3d-viewer__poster { display: block; width: 100%; height: 100%; object-fit: cover; }
.t3d-viewer__canvas { display: block; width: 100%; height: 100%; cursor: grab; touch-action: none; }
.t3d-viewer__canvas:active { cursor: grabbing; }
.t3d-viewer__hint { position: absolute; left: 50%; bottom: 0.9rem; margin: 0; padding: 0.3rem 0.8rem; transform: translateX(-50%); border-radius: 999px; background: rgba(255, 255, 255, 0.85); color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--x-small); white-space: nowrap; pointer-events: none; }
.t3d-thumbs { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.75rem 0 0; padding: 0; list-style: none; }
.t3d-thumbs__button { width: 4.5rem; height: 4.5rem; padding: 0; overflow: hidden; border: 2px solid var(--wp--preset--color--line); border-radius: var(--tap3d-radius-s); background: var(--wp--preset--color--sand); cursor: pointer; }
.t3d-thumbs__button.is-active { border-color: var(--wp--preset--color--accent); }
.t3d-thumbs__button img { display: block; width: 100%; height: 100%; object-fit: cover; }
.t3d-thumbs__3d { font-weight: 800; color: var(--wp--preset--color--accent); }

.t3d-model__head { margin-top: 0.75rem; }
.t3d-model__head h1 { margin: 0; line-height: 1.05; }
.t3d-model__lead { max-width: 46rem; margin-top: 0.75rem !important; color: var(--tap3d-muted-strong); font-size: var(--wp--preset--font-size--medium); }
.t3d-info__card { margin-top: 0; padding: 1.25rem 1.4rem 1.4rem; border: 1px solid var(--wp--preset--color--line); border-radius: var(--tap3d-radius-m); background: var(--wp--preset--color--card); box-shadow: var(--tap3d-shadow); }
.t3d-info__price { display: grid; gap: 0.15rem; margin: 0 0 1rem !important; }
.t3d-info__price small { color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--x-small); }
.t3d-info__price strong { font-family: var(--wp--preset--font-family--heading); font-size: 2rem; line-height: 1.1; }
.t3d-specs { margin: 0 0 1.25rem; }
.t3d-specs > div { display: flex; justify-content: space-between; gap: 1rem; padding: 0.55rem 0; border-top: 1px solid var(--wp--preset--color--line); font-size: var(--wp--preset--font-size--small); }
.t3d-specs dt { color: var(--wp--preset--color--muted); }
.t3d-specs dd { margin: 0; text-align: right; font-weight: 600; }
.t3d-specs dd a { color: inherit; }
.t3d-info__note { margin: 0.75rem 0 0 !important; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--x-small); }
.t3d-info__note.is-personal { margin-top: 0 !important; padding: 0.8rem 1rem; border-radius: var(--tap3d-radius-s); background: var(--wp--preset--color--butter); color: var(--tap3d-muted-strong); font-size: var(--wp--preset--font-size--small); }

.t3d-downloads { margin-top: clamp(1.5rem, 3vw, 2rem); padding: 1.25rem 1.4rem; border: 1px solid var(--wp--preset--color--line); border-radius: var(--tap3d-radius-m); background: var(--wp--preset--color--card); }
.t3d-downloads__label { margin: 0 0 0.75rem !important; font-size: var(--wp--preset--font-size--medium); }
.t3d-downloads__buttons { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.t3d-download { display: inline-flex; gap: 0.35rem; align-items: center; padding: 0.6rem 1.1rem; border: 1.5px solid var(--wp--preset--color--contrast); border-radius: 999px; color: var(--wp--preset--color--contrast); font-size: var(--wp--preset--font-size--small); font-weight: 700; text-decoration: none; }
.t3d-download:hover { border-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--accent); }
.t3d-info__note a { color: var(--tap3d-accent-dark); font-weight: 600; }
.t3d-credit { margin: 0.9rem 0 0 !important; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--x-small); }
.t3d-credit strong { color: var(--wp--preset--color--contrast); }
.t3d-credit a { color: inherit; }

.t3d-model__about { max-width: 760px; margin-top: clamp(2.5rem, 6vw, 4rem); }
