/* ============================================
   PART.CSS — стили страницы карточки изделия
   ============================================ */

.global-bg{
  display:none;
}

body{
  background:var(--bg2);
  min-height:100vh;
}

/* ============================================
   ШАПКА С ХЛЕБНЫМИ КРОШКАМИ
   ============================================ */

.prt-hero{
  position:relative;
  z-index:2;
  padding:32px 0 8px;
}

.prt-crumbs{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  font-size:13px;
  font-weight:600;
  color:var(--ink3);
}

.prt-crumbs a{
  color:var(--ink3);
  transition:color .2s;
}

.prt-crumbs a:hover{
  color:var(--blue);
}

.prt-crumbs i{
  font-size:10px;
  opacity:0.5;
}

.prt-crumbs .cur{
  color:var(--ink2);
}

/* ============================================
   ОСНОВНОЙ БЛОК
   ============================================ */

.prt-section{
  position:relative;
  z-index:2;
  padding:24px 0 100px;
}

/* ============================================
   КНОПКА «В каталог» НАД КАРТОЧКОЙ
   Как на маркетплейсах — неброская, вверху слева
   ============================================ */

.prt-back-top{
  display:inline-flex;
  align-items:center;
  gap:9px;
  background:transparent;
  color:var(--blue);
  font-family:'Manrope',sans-serif;
  font-size:14px;
  font-weight:700;
  padding:10px 16px 10px 4px;
  border-radius:10px;
  margin-bottom:20px;
  transition:all .22s;
}

.prt-back-top i{
  font-size:15px;
  transition:transform .22s;
}

.prt-back-top:hover{
  color:var(--orange);
  background:var(--orange-l);
  padding-left:14px;
}

.prt-back-top:hover i{
  transform:translateX(-3px);
}

/* Раскладка: превью слева + информация справа */
.prt-layout{
  display:grid;
  grid-template-columns:1.05fr 1fr;
  gap:36px;
  margin-bottom:48px;
  animation:fadeUp .6s ease both;
}

/* ============================================
   ПРЕВЬЮ — технический чертёж (как в каталоге, но больше)
   ============================================ */

.prt-media{
  position:relative;
  background:var(--card);
  border-radius:24px;
  overflow:hidden;
  box-shadow:var(--sh);
  display:flex;
  flex-direction:column;
}

.prt-media{
  background:#e8edf5;
  background-image:
    linear-gradient(rgba(34,83,156,0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(34,83,156,0.08) 1px, transparent 1px),
    linear-gradient(rgba(34,83,156,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(34,83,156,0.04) 1px, transparent 1px);
  background-size:50px 50px, 50px 50px, 10px 10px, 10px 10px;
  background-position:0 0, 0 0, 0 0, 0 0;
  min-height:480px;
}

[data-theme="dark"] .prt-media{
  background:#1f2742;
  background-image:
    linear-gradient(rgba(168,181,212,0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(168,181,212,0.07) 1px, transparent 1px),
    linear-gradient(rgba(168,181,212,0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(168,181,212,0.03) 1px, transparent 1px);
  background-size:50px 50px, 50px 50px, 10px 10px, 10px 10px;
}

/* Виньетка по краям */
.prt-media::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(ellipse at center, transparent 40%, rgba(34,83,156,0.08) 100%);
  pointer-events:none;
  z-index:0;
}

[data-theme="dark"] .prt-media::before{
  background:radial-gradient(ellipse at center, transparent 40%, rgba(0,0,0,0.4) 100%);
}

/* ============================================
   КАРТИНКА ДЕТАЛИ НА СТРАНИЦЕ КАРТОЧКИ
   Вписывается в media-блок целиком, бейджи остаются поверх.
   При наличии картинки (.has-img) — фон media становится ровным,
   виньетка и сетка скрываются.
   ============================================ */

.prt-img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  padding:32px;
  background:#fff;
  z-index:1;
  display:block;
}

/* Когда есть картинка — убираем сетку чертёжа,
   виньетку, иконку-заглушку и штамп «3D · МОДЕЛЬ».
   Фон всегда белый — товары лучше смотрятся на нейтральном фоне. */
.prt-media.has-img{
  background:#fff;
  background-image:none;
}
.prt-media.has-img::before{
  display:none;
}
.prt-media.has-img .prt-blueprint,
.prt-media.has-img .prt-stamp{
  display:none;
}

/* В тёмной теме — тонкая граница, чтобы белый блок не выглядел резко */
[data-theme="dark"] .prt-media.has-img{
  box-shadow:inset 0 0 0 1.5px var(--line), var(--sh);
}

/* Бейдж технологии */
.prt-tech-badge{
  position:absolute;
  top:18px;
  left:18px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:8px 14px;
  border-radius:10px;
  font-family:'Manrope',sans-serif;
  font-size:12px;
  font-weight:800;
  letter-spacing:0.04em;
  background:#fff;
  z-index:2;
  box-shadow:0 4px 12px rgba(10,21,48,0.12);
}

.prt-tech-badge.tone-blue{
  color:var(--blue);
}

.prt-tech-badge.tone-orange{
  color:var(--orange);
}

/* Бейдж сложности */
.prt-diff-badge{
  position:absolute;
  top:18px;
  right:18px;
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:8px 13px;
  border-radius:10px;
  font-size:12px;
  font-weight:700;
  color:#3d4a68;
  background:#fff;
  z-index:2;
  box-shadow:0 4px 12px rgba(10,21,48,0.12);
}

.prt-diff-badge .dot{
  width:8px;
  height:8px;
  border-radius:50%;
  flex-shrink:0;
}

/* Тёмная тема — бейджи на фоне карточки, а не белые */
[data-theme="dark"] .prt-tech-badge,
[data-theme="dark"] .prt-diff-badge{
  background:var(--card);
  box-shadow:0 4px 12px rgba(0,0,0,0.4);
}

[data-theme="dark"] .prt-diff-badge{
  color:var(--ink);
}

/* Большая иконка-чертёж */
.prt-blueprint{
  flex:1;
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:40px;
}

.prt-blueprint i{
  font-size:180px;
  color:#5d6a8f;
  filter:drop-shadow(0 12px 24px rgba(34,83,156,0.22))
         drop-shadow(0 4px 8px rgba(10,21,48,0.16));
  transition:transform .5s cubic-bezier(.2,.7,.2,1);
}

[data-theme="dark"] .prt-blueprint i{
  color:#a8b5d4;
  filter:drop-shadow(0 12px 24px rgba(0,0,0,0.5))
         drop-shadow(0 4px 8px rgba(0,0,0,0.3));
}

.prt-media:hover .prt-blueprint i{
  transform:scale(1.06) translateY(-4px);
}

/* Штамп «3D · МОДЕЛЬ» */
.prt-stamp{
  position:absolute;
  bottom:18px;
  right:24px;
  font-family:'Unbounded',sans-serif;
  font-size:11px;
  font-weight:700;
  letter-spacing:0.12em;
  color:rgba(34,83,156,0.45);
  z-index:2;
}

[data-theme="dark"] .prt-stamp{
  color:rgba(168,181,212,0.4);
}

/* Подпись внизу превью — больше не используется, но оставляем на будущее */
/* ============================================
   ИНФОРМАЦИОННАЯ КОЛОНКА
   ============================================ */

.prt-info{
  display:flex;
  flex-direction:column;
}

.prt-cat-tag{
  display:inline-flex;
  align-items:center;
  align-self:flex-start;
  gap:6px;
  background:var(--blue-l);
  color:var(--blue);
  font-family:'Unbounded',sans-serif;
  font-size:11px;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  padding:7px 14px;
  border-radius:20px;
  margin-bottom:14px;
}

.prt-name{
  font-family:'Unbounded',sans-serif;
  font-size:clamp(28px,3.2vw,40px);
  font-weight:800;
  line-height:1.1;
  letter-spacing:-0.02em;
  color:var(--blue);
  margin-bottom:14px;
}

.prt-short{
  font-size:15px;
  color:var(--ink2);
  line-height:1.6;
  margin-bottom:24px;
}

/* Базовая цена — в стиле «Итого», но с фирменным светлым фоном */
.prt-price-box{
  background:var(--blue-l);
  border-radius:16px;
  padding:20px 24px;
  margin-bottom:24px;
  border:1.5px solid var(--blue-m);
}

.prt-price-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:6px;
}

.prt-price-from{
  font-family:'Unbounded',sans-serif;
  font-size:18px;
  font-weight:700;
  color:var(--blue);
  letter-spacing:-0.01em;
}

.prt-price-val{
  font-family:'Unbounded',sans-serif;
  font-size:28px;
  font-weight:800;
  color:var(--blue);
  letter-spacing:-0.02em;
}

.prt-price-hint{
  font-size:12px;
  color:var(--ink3);
}

/* ============================================
   БЛОКИ ВЫБОРА (материал, цвет, количество)
   ============================================ */

.prt-block{
  margin-bottom:22px;
}

.prt-block-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}

.prt-block-title{
  font-family:'Unbounded',sans-serif;
  font-size:13px;
  font-weight:700;
  color:var(--blue);
  letter-spacing:-0.01em;
}

.prt-block-sel{
  font-size:13px;
  font-weight:600;
  color:var(--ink2);
}

/* Список материалов */
.prt-mat-list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.prt-mat-btn{
  background:var(--card);
  border:1.5px solid var(--line);
  border-radius:10px;
  padding:9px 16px;
  font-family:'Manrope',sans-serif;
  font-size:14px;
  font-weight:600;
  color:var(--ink2);
  cursor:pointer;
  transition:all .2s;
}

.prt-mat-btn:hover{
  border-color:var(--blue-m);
  color:var(--blue);
}

.prt-mat-btn.is-on{
  background:var(--blue);
  border-color:var(--blue);
  color:#fff;
  box-shadow:0 6px 16px rgba(34,83,156,0.32);
}

/* Метка надбавки «+10%» внутри кнопки материала */
.prt-mat-coef{
  display:inline-block;
  margin-left:6px;
  padding:1px 6px;
  border-radius:6px;
  font-size:11px;
  font-weight:700;
  background:var(--orange-l);
  color:var(--orange);
}

.prt-mat-btn.is-on .prt-mat-coef{
  background:rgba(255,255,255,0.22);
  color:#fff;
}

/* Список цветов */
.prt-color-list{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.prt-color-btn{
  width:38px;
  height:38px;
  border-radius:11px;
  position:relative;
  cursor:pointer;
  box-shadow:inset 0 0 0 1.5px rgba(10,21,48,0.12);
  transition:transform .15s, box-shadow .2s;
  background:transparent;
  border:none;
  padding:0;
}

.prt-color-btn:hover{
  transform:scale(1.08);
}

.prt-color-btn.is-on{
  box-shadow:0 0 0 2px var(--card),0 0 0 4px var(--blue);
}

.prt-color-btn i{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:14px;
  opacity:0;
  color:#fff;
  text-shadow:0 1px 3px rgba(0,0,0,0.4);
  transition:opacity .2s;
}

.prt-color-btn.is-on i{
  opacity:1;
}

/* Количество */
.prt-qty{
  display:inline-flex;
  align-items:center;
  background:var(--card);
  border:1.5px solid var(--line);
  border-radius:12px;
  overflow:hidden;
}

.prt-qty-btn{
  width:46px;
  height:46px;
  border:none;
  background:transparent;
  color:var(--blue);
  font-size:14px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:all .2s;
}

.prt-qty-btn:hover{
  background:var(--blue-l);
  color:var(--blue);
}

.prt-qty-input{
  width:64px;
  height:46px;
  border:none;
  border-left:1.5px solid var(--line);
  border-right:1.5px solid var(--line);
  background:transparent;
  text-align:center;
  font-family:'Unbounded',sans-serif;
  font-size:16px;
  font-weight:700;
  color:var(--blue);
  outline:none;
  -moz-appearance:textfield;
}

.prt-qty-input::-webkit-outer-spin-button,
.prt-qty-input::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}

/* ============================================
   ИТОГОВАЯ СТОИМОСТЬ
   ============================================ */

.prt-total{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:22px 26px;
  background:var(--blue);
  border-radius:16px;
  color:#fff;
  margin-bottom:18px;
  box-shadow:0 12px 32px rgba(34,83,156,0.28);
}

.prt-total-lbl{
  font-family:'Unbounded',sans-serif;
  font-size:20px;
  font-weight:700;
  color:#fff;
  letter-spacing:-0.01em;
}

.prt-total-val{
  font-family:'Unbounded',sans-serif;
  font-size:32px;
  font-weight:800;
  color:#fff;
  letter-spacing:-0.02em;
}

/* ============================================
   КНОПКИ ДЕЙСТВИЙ
   «В корзину» — синяя (основное действие)
   «Купить сейчас» — оранжевая (акцентная, призывная)
   ============================================ */

.prt-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-bottom:18px;
}

.prt-cart-btn,
.prt-buy-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border:none;
  border-radius:14px;
  padding:18px 20px;
  font-family:'Manrope',sans-serif;
  font-size:15px;
  font-weight:800;
  cursor:pointer;
  transition:all .22s;
}

.prt-cart-btn i,
.prt-buy-btn i{
  font-size:18px;
}

/* В корзину — фирменный синий */
.prt-cart-btn{
  background:var(--blue);
  color:#fff;
  box-shadow:0 10px 26px rgba(34,83,156,0.30);
}

.prt-cart-btn:hover{
  background:#1a4583;
  transform:translateY(-2px);
  box-shadow:0 14px 32px rgba(34,83,156,0.40);
}

/* Купить сейчас — фирменный оранжевый */
.prt-buy-btn{
  background:var(--orange);
  color:#fff;
  box-shadow:0 10px 26px rgba(255,101,0,0.32);
}

.prt-buy-btn:hover{
  background:#eb5c00;
  transform:translateY(-2px);
  box-shadow:0 14px 32px rgba(255,101,0,0.42);
}

.prt-buy-btn i{
  /* Молния подпрыгивает при hover */
  transition:transform .25s;
}

.prt-buy-btn:hover i{
  transform:scale(1.18) rotate(-8deg);
}

/* Слот «В корзину»: либо кнопка, либо степпер «− N +» (если уже в корзине) */
.prt-cart-slot{
  display:flex;
}
.prt-cart-slot .prt-cart-btn{
  width:100%;
}
.prt-cart-slot .prt-cart-btn[hidden]{
  display:none;
}

.prt-cart-stepper{
  display:flex;
  align-items:stretch;
  width:100%;
  height:58px;
  background:var(--blue-l);
  border:1.5px solid var(--blue-m);
  border-radius:14px;
  overflow:hidden;
}
.prt-cart-stepper[hidden]{
  display:none;
}

.prt-step-btn{
  width:56px;
  border:none;
  background:transparent;
  color:var(--blue);
  font-size:16px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .2s;
}
.prt-step-btn:hover{
  background:var(--blue-m);
}

.prt-step-input{
  flex:1;
  min-width:0;
  border:none;
  background:transparent;
  text-align:center;
  font-family:'Unbounded',sans-serif;
  font-size:18px;
  font-weight:800;
  color:var(--blue);
  outline:none;
  -moz-appearance:textfield;
}
.prt-step-input::-webkit-outer-spin-button,
.prt-step-input::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}

.prt-step-go{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:0 20px;
  background:var(--blue);
  color:#fff;
  font-family:'Manrope',sans-serif;
  font-size:14px;
  font-weight:800;
  white-space:nowrap;
  transition:background .2s;
}
.prt-step-go:hover{
  background:#1a4583;
  color:#fff;
}
.prt-step-go i{
  font-size:17px;
}

/* Мини-подсказка под кнопками */
.prt-quick-info{
  display:flex;
  gap:22px;
  font-size:13px;
  color:var(--ink3);
  padding-top:4px;
}

.prt-qi-item{
  display:inline-flex;
  align-items:center;
  gap:7px;
}

.prt-qi-item b{
  color:var(--ink);
  font-family:'Manrope',sans-serif;
  font-weight:700;
}

.prt-qi-item i{
  color:var(--blue);
  font-size:14px;
}

/* ============================================
   ОБЩИЕ ЗАГОЛОВКИ СЕКЦИЙ
   ============================================ */

.prt-section-title{
  font-family:'Unbounded',sans-serif;
  font-size:clamp(22px,2.4vw,28px);
  font-weight:800;
  color:var(--blue);
  letter-spacing:-0.02em;
  margin-bottom:22px;
}

/* ============================================
   ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ
   ============================================ */

.prt-specs{
  background:var(--card);
  border-radius:20px;
  padding:36px 32px;
  margin-bottom:36px;
  box-shadow:var(--sh-sm);
}

.prt-specs-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:18px;
}

.prt-spec-row{
  display:flex;
  align-items:flex-start;
  gap:14px;
  padding:16px;
  background:var(--bg2);
  border-radius:14px;
  transition:all .25s;
}

.prt-spec-row:hover{
  background:var(--blue-l);
}

.prt-spec-ico{
  width:42px;
  height:42px;
  border-radius:12px;
  background:var(--blue-l);
  color:var(--blue);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  flex-shrink:0;
  transition:transform .25s;
}

.prt-spec-row:hover .prt-spec-ico{
  background:var(--blue);
  color:#fff;
  transform:rotate(-8deg);
}

.prt-spec-body{
  min-width:0;
  flex:1;
}

.prt-spec-lbl{
  font-size:12px;
  font-weight:600;
  color:var(--ink3);
  margin-bottom:3px;
  letter-spacing:0.02em;
}

.prt-spec-val{
  font-family:'Unbounded',sans-serif;
  font-size:15px;
  font-weight:700;
  color:var(--blue);
  letter-spacing:-0.01em;
  line-height:1.3;
  word-break:break-word;
}

/* ============================================
   ОПИСАНИЕ
   ============================================ */

.prt-about{
  background:var(--card);
  border-radius:20px;
  padding:36px 32px;
  margin-bottom:36px;
  box-shadow:var(--sh-sm);
}

.prt-about-text{
  font-size:15px;
  color:var(--ink2);
  line-height:1.7;
  max-width:820px;
}

/* ============================================
   «ВАМ МОЖЕТ ПОНРАВИТЬСЯ» — слайдер
   С кнопками-стрелками, как на маркетплейсах
   ============================================ */

/* Шапка секции: заголовок слева + стрелки справа */
.prt-related-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:22px;
}

.prt-related-head .prt-section-title{
  margin-bottom:0;
}

.prt-related-nav{
  display:flex;
  gap:10px;
  flex-shrink:0;
}

/* Круглые кнопки-стрелки */
.prt-rel-arrow{
  width:44px;
  height:44px;
  border-radius:50%;
  background:var(--card);
  border:1.5px solid var(--line);
  color:var(--blue);
  font-size:16px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:all .22s;
}

.prt-rel-arrow:hover:not(:disabled){
  background:var(--blue);
  border-color:var(--blue);
  color:#fff;
  box-shadow:0 8px 20px rgba(34,83,156,0.32);
  transform:translateY(-2px);
}

.prt-rel-arrow:disabled{
  opacity:0.4;
  cursor:not-allowed;
  color:var(--ink3);
}

/* Горизонтальная дорожка карточек с выравниванием.
   scroll-snap: proximity — мягко подводит к краю карточки, но не «прыгает» при ручной прокрутке. */
.prt-related-track{
  display:flex;
  gap:16px;
  overflow-x:auto;
  scroll-behavior:smooth;
  scroll-snap-type:x proximity;
  padding-bottom:4px;
  /* Скрываем скроллбар */
  scrollbar-width:none;
  -ms-overflow-style:none;
}

.prt-related-track::-webkit-scrollbar{
  display:none;
}

/* Ширина карточки: ровно (100% − сумма gap'ов) / N
   На десктопе 4 карточки: (100% − 3×16px) / 4 = (100% − 48px) / 4 */
.prt-rel-card{
  flex:0 0 calc((100% - 48px) / 4);
  scroll-snap-align:start;
  background:var(--card);
  border-radius:16px;
  overflow:hidden;
  box-shadow:var(--sh-sm);
  transition:all .25s cubic-bezier(.2,.7,.2,1);
  text-decoration:none;
}

.prt-rel-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--sh);
}

.prt-rel-media{
  height:120px;
  background:#e8edf5;
  background-image:
    linear-gradient(rgba(34,83,156,0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(34,83,156,0.08) 1px, transparent 1px);
  background-size:25px 25px;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
}

[data-theme="dark"] .prt-rel-media{
  background:#1f2742;
  background-image:
    linear-gradient(rgba(168,181,212,0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(168,181,212,0.07) 1px, transparent 1px);
  background-size:25px 25px;
}

.prt-rel-media i{
  font-size:48px;
  color:#5d6a8f;
  filter:drop-shadow(0 4px 8px rgba(34,83,156,0.18));
}

[data-theme="dark"] .prt-rel-media i{
  color:#a8b5d4;
}

/* Картинка в слайдере «Похожие» — вписывается в media, фон белый */
.prt-rel-img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  padding:10px;
  background:#fff;
  z-index:1;
  display:block;
}

.prt-rel-media.has-img{
  background:#fff;
  background-image:none;
}
.prt-rel-media.has-img i{
  display:none;
}

/* В тёмной теме — тонкая разделительная линия под картинкой */
[data-theme="dark"] .prt-rel-media.has-img{
  box-shadow:inset 0 -1px 0 var(--line);
}

.prt-rel-body{
  padding:14px 16px 18px;
}

.prt-rel-name{
  font-family:'Manrope',sans-serif;
  font-size:14px;
  font-weight:700;
  color:var(--ink);
  margin-bottom:8px;
  line-height:1.3;
  min-height:36px;
}

.prt-rel-price{
  font-family:'Unbounded',sans-serif;
  font-size:14px;
  font-weight:700;
  color:var(--blue);
}

/* ============================================
   ЭКРАН «НЕ НАЙДЕНО»
   ============================================ */

.prt-notfound{
  padding:80px 0 120px;
}

.prt-nf-card{
  max-width:520px;
  margin:0 auto;
  text-align:center;
  background:var(--card);
  border-radius:24px;
  padding:60px 40px;
  box-shadow:var(--sh);
}

.prt-nf-ico{
  width:80px;
  height:80px;
  margin:0 auto 24px;
  background:var(--blue-l);
  color:var(--blue);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:32px;
}

.prt-nf-card h2{
  font-family:'Unbounded',sans-serif;
  font-size:28px;
  font-weight:800;
  color:var(--blue);
  margin-bottom:12px;
  letter-spacing:-0.02em;
}

.prt-nf-card p{
  color:var(--ink2);
  font-size:15px;
  line-height:1.6;
  margin-bottom:28px;
}

.prt-nf-btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  background:var(--orange);
  color:#fff;
  padding:14px 28px;
  border-radius:12px;
  font-weight:800;
  font-size:14px;
  transition:all .22s;
}

.prt-nf-btn:hover{
  background:#eb5c00;
  transform:translateY(-1px);
  color:#fff;
}

/* ============================================
   АДАПТИВНОСТЬ
   ============================================ */

@media(max-width:1024px){
  .prt-layout{
    grid-template-columns:1fr;
    gap:24px;
  }
  .prt-media{
    min-height:380px;
  }
  .prt-blueprint i{
    font-size:140px;
  }
  /* На планшете — 3 целых карточки: (100% − 2×16px) / 3 = (100% − 32px) / 3 */
  .prt-rel-card{
    flex:0 0 calc((100% - 32px) / 3);
  }
}

@media(max-width:640px){
  .prt-hero{
    padding:20px 0 4px;
  }
  .prt-section{
    padding:16px 0 64px;
  }
  .prt-media{
    min-height:300px;
  }
  .prt-blueprint i{
    font-size:110px;
  }
  .prt-specs,
  .prt-about{
    padding:24px 20px;
  }
  .prt-actions{
    grid-template-columns:1fr;
  }
  .prt-cart-btn,
  .prt-buy-btn{
    width:100%;
    justify-content:center;
  }
  .prt-price-val{
    font-size:24px;
  }
  .prt-price-from{
    font-size:16px;
  }
  .prt-quick-info{
    flex-direction:column;
    gap:8px;
  }
  .prt-specs-grid{
    grid-template-columns:1fr;
  }
  .prt-related-track{
    gap:12px;
  }
  .prt-rel-card{
    /* 2 карточки в ряд на мобильном */
    flex:0 0 calc((100% - 12px) / 2);
  }
  .prt-rel-arrow{
    width:38px;
    height:38px;
    font-size:14px;
  }
  /* Итого — поменьше на мобильном */
  .prt-total{
    padding:18px 22px;
  }
  .prt-total-lbl{
    font-size:17px;
  }
  .prt-total-val{
    font-size:26px;
  }
}
