/* Shared interaction rhythm across the public pages. */
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: 160ms; }
:where(button,.primary-btn,.outline-btn,.nav-cta,.social-pill,.social-big a,.button,.btn) {
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  transition: background-color .16s ease, color .16s ease, border-color .16s ease, box-shadow .16s ease, scale .12s ease;
}
:where(button,.primary-btn,.outline-btn,.nav-cta,.social-pill,.social-big a,.button,.btn):active:not(:disabled) { scale: .97; }
:where(button,a,input,select,textarea):focus-visible { outline: 3px solid #D09524; outline-offset: 4px; }
button:disabled { opacity: .6; cursor: wait; }
button[aria-busy="true"] { cursor: progress; }
@media(hover:hover) {
  :where(.primary-btn,.product-actions button,.nav-cta):hover:not(:disabled) { background: #244548; box-shadow: 0 5px 15px #2D535625; }
  :where(.outline-btn,.share-btn,.catalog-filters button):hover { background: #D0952415; border-color: #D09524; }
  .product-new-card:hover,.cnc-card:hover { box-shadow: 0 12px 32px #2D535615; }
}
.page-stage { min-height: 55vh; }
.page-stage { animation: page-arrive .22s ease-out; }
@keyframes page-arrive { from { opacity: .8; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.admin-pro .admin-alert{position:sticky;top:12px;z-index:20}
.admin-pro .media-edit details>summary{cursor:pointer;padding:14px 0;font-weight:700;color:#2D5356}
.admin-pro .admin-filters{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:20px}
.admin-pro .admin-filters select,.admin-pro .admin-filters input{min-height:44px;border:1px solid #c8d4d3;border-radius:8px;padding:10px;background:#fff;max-width:100%}
.admin-pro .media-edit .edit-actions{gap:8px;flex-wrap:wrap}
.admin-pro button:active:not(:disabled){transform:translateY(1px);scale:.97}
.product-new-grid,.cnc-grid { align-items: stretch; }
.product-new-card { display: flex; flex-direction: column; animation: none!important; transition: box-shadow .2s ease; contain-intrinsic-size: auto 590px; }
.product-new-card>a { display: block; aspect-ratio: 4/3; background: #e9e6de; overflow: hidden; }
.product-new-card>a>img { width: 100%; height: 100%; object-fit: cover; }
.product-new-card>div { display: flex; flex: 1; flex-direction: column; gap: 10px; }
.product-new-card h3 { line-height: 1.4; margin-block: 4px; font-size: clamp(21px,2vw,28px); }
.product-new-card p { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.7; }
.product-actions { margin-top: auto; gap: 14px; flex-wrap: wrap; }
.product-actions button,.catalog-filters button,.product-colors button,.product-thumbs button { min-height: 44px; }
.progressive-image { opacity: 1; }
.progressive-image.image-ready { animation: image-arrive .2s ease; }
@keyframes image-arrive { from { opacity: .65; } to { opacity: 1; } }
/* Keep image boxes laid out so native lazy loading can reliably observe them. */
.product-new-card,.cnc-card,.related-grid>a { content-visibility: visible!important; }
.cnc-card,.related-grid>a { content-visibility: auto; contain-intrinsic-size: auto 520px; }
.cnc-card .image-contain { aspect-ratio: 4/5; background: #ece8df; }
.cnc-card .image-contain>img { width: 100%; height: 100%; object-fit: contain; }
#catalog-more { display: flex; justify-content: center; padding-block: 28px; }
.toast { max-width: calc(100vw - 32px); pointer-events: none; }
.new-footer>span { direction: ltr; unicode-bidi: isolate; overflow-wrap: anywhere; }
.image-count { direction: ltr; unicode-bidi: isolate; }
.detail-info h1 { line-height: 1.25; }
.detail-info p { line-height: 1.85; }
.product-thumbs { overflow-x: auto; scrollbar-width: thin; }
@media(max-width:700px) {
  .mobile-dock,.legacy-mobile-dock { padding-bottom: calc(12px + env(safe-area-inset-bottom,0px))!important; }
  .new-site { padding-bottom: calc(100px + env(safe-area-inset-bottom,0px)); }
  .floating-langs button { min-width: 44px; min-height: 44px; }
  .quick-quote,.site-back-top { bottom: calc(104px + env(safe-area-inset-bottom,0px))!important; }
  .product-actions button { padding: 12px 18px; }
  .detail-info .primary-btn { width: 100%; min-height: 50px; }
  .product-new-card p { font-size: 16px; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior: auto!important; animation-duration: .01ms!important; transition-duration: .01ms!important; }
  .progressive-image { opacity: 1; }
}
