@charset "utf-8";
/* =================================================================
   중장비 부품형 1 (parts1)
   모든 선택자는 .pt- 로 시작한다. 게시판 스킨과 겹치지 않는다.
   남색(신뢰) + 안전 주황(행동 버튼) + 공장 바닥 같은 밝은 회색. 제조사 고유 색 · 로고는 쓰지 않는다.
   ================================================================= */

:root{
  --pt-navy:#13243a;
  --pt-navy2:#1c3350;
  --pt-orange:#ef7d1a;
  --pt-orange-d:#d06a0f;
  --pt-steel:#eef0f3;
  --pt-steel2:#e2e6eb;
  --pt-ink:#1c232c;
  --pt-body:#4d5663;
  --pt-mute:#8a93a0;
  --pt-line:#dde2e8;
  --pt-wrap:1240px;
}

.pt-wrap{ max-width:var(--pt-wrap); margin:0 auto; padding:0 24px; }
body{
  font-family:'Pretendard','Noto Sans KR','맑은 고딕',Malgun Gothic,sans-serif; font-size:16px;
  color:var(--pt-body); background:#fff; letter-spacing:-.02em; word-break:keep-all;
  padding-top:var(--pt-fixedh, 130px);
}
.pt-skip{ position:absolute; left:-9999px; }
.pt-skip:focus{ left:10px; top:10px; z-index:999; background:#fff; padding:10px 16px; }
img{ max-width:100%; }
.pt-ico{ width:22px; height:22px; flex:none; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{ outline:3px solid var(--pt-orange); outline-offset:2px; }
.pt-en{ margin:0; font-size:12.5px; font-weight:800; letter-spacing:.26em; color:var(--pt-orange); }
.pt-muted{ color:var(--pt-mute); }
.pt-empty{ padding:30px; text-align:center; border:1px dashed var(--pt-line); color:var(--pt-mute); }
.pt-btn{ display:inline-flex; align-items:center; gap:8px; padding:15px 26px; border-radius:6px; background:var(--pt-orange); color:#fff; font-size:18px; font-weight:800; text-decoration:none; font-variant-numeric:tabular-nums; }
.pt-btn:hover{ background:var(--pt-orange-d); }
.pt-btn.is-ghost{ background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.4); font-size:16px; font-weight:700; }
.pt-btn.is-ghost:hover{ background:rgba(255,255,255,.2); }

/* ---------------------------------------------------------- 헤더 */
.pt-fixed{ position:fixed; top:0; left:0; right:0; z-index:100; background:#fff; transition:box-shadow .25s; }
.pt-fixed.is-stuck{ box-shadow:0 6px 18px -12px rgba(0,0,0,.3); }
.pt-note{ padding:6px 16px; background:#fff4e6; color:#8a4a00; font-size:12.5px; font-weight:700; text-align:center; }
.pt-note a{ color:inherit; }
.pt-top{ background:var(--pt-navy); color:#b7c3d3; font-size:13px; }
.pt-top__in{ display:flex; flex-wrap:wrap; gap:4px 24px; height:36px; align-items:center; }
.pt-top span{ display:inline-flex; align-items:center; gap:6px; }
.pt-top .pt-ico{ width:15px; height:15px; color:var(--pt-orange); }
.pt-header{ border-bottom:1px solid var(--pt-line); }
.pt-header__in{ display:flex; align-items:center; gap:28px; height:80px; }
.pt-logo{ display:flex; align-items:center; gap:10px; text-decoration:none; flex:none; }
.pt-logo__mark{ display:grid; place-items:center; width:44px; height:44px; border-radius:8px; background:var(--pt-navy); color:var(--pt-orange); }
.pt-logo__mark .pt-ico{ width:28px; height:28px; }
.pt-logo__txt strong{ display:block; font-size:22px; font-weight:900; letter-spacing:-.04em; color:var(--pt-navy); line-height:1.1; }
.pt-logo__txt small{ display:block; font-size:9.5px; font-weight:700; letter-spacing:.14em; color:var(--pt-mute); }
.pt-gnb{ flex:1; }
.pt-gnb > ul{ display:flex; justify-content:center; gap:4px; margin:0; padding:0; list-style:none; }
.pt-gnb li{ position:relative; }
.pt-gnb a{ display:block; padding:10px 16px; font-size:16px; font-weight:700; color:var(--pt-ink); text-decoration:none; }
.pt-gnb a:hover, .pt-gnb a.is-on{ color:var(--pt-orange); }
.pt-gnb li ul{ position:absolute; left:50%; top:100%; min-width:160px; transform:translateX(-50%); margin:0; padding:8px; list-style:none; background:#fff; border:1px solid var(--pt-line); border-radius:8px; box-shadow:0 12px 30px -16px rgba(0,0,0,.3); opacity:0; visibility:hidden; transition:opacity .15s; }
.pt-gnb li:hover > ul, .pt-gnb li:focus-within > ul{ opacity:1; visibility:visible; }
.pt-gnb li ul a{ font-size:14.5px; font-weight:600; white-space:nowrap; }
.pt-gnb__empty{ font-size:13px; color:var(--pt-mute); }
.pt-headtel{ display:flex; align-items:center; gap:10px; flex:none; color:var(--pt-navy); text-decoration:none; }
.pt-headtel .pt-ico{ width:36px; height:36px; padding:8px; border-radius:50%; background:var(--pt-orange); color:#fff; box-sizing:border-box; }
.pt-headtel span{ font-size:22px; font-weight:900; font-variant-numeric:tabular-nums; line-height:1.1; }
.pt-headtel small{ display:block; font-size:12px; font-weight:700; color:var(--pt-mute); }
.pt-burger{ display:none; width:44px; height:44px; border:0; background:none; cursor:pointer; flex:none; margin-left:auto; }
.pt-burger span{ display:block; width:24px; height:2px; margin:5px auto; background:var(--pt-navy); }
.pt-drawer{ position:fixed; inset:0; z-index:200; }
.pt-drawer__bg{ position:absolute; inset:0; background:rgba(0,0,0,.5); }
.pt-drawer__panel{ position:absolute; right:0; top:0; bottom:0; width:min(320px,86vw); overflow:auto; padding:60px 24px 30px; background:#fff; }
.pt-drawer__close{ position:absolute; right:12px; top:12px; width:40px; height:40px; border:0; background:none; font-size:20px; cursor:pointer; }
.pt-drawer ul{ margin:0; padding:0; list-style:none; }
.pt-drawer li a{ display:block; padding:13px 0; border-bottom:1px solid var(--pt-line); font-size:17px; font-weight:800; color:var(--pt-ink); text-decoration:none; }
.pt-drawer li li a{ padding:9px 0 9px 14px; font-size:15px; font-weight:600; border-bottom:0; }
.pt-drawer__tel{ display:flex; justify-content:center; gap:8px; margin-top:18px; padding:15px; border-radius:8px; background:var(--pt-orange); color:#fff; font-weight:800; text-decoration:none; }

.pt-sbanner{ padding:48px 0 40px; background:var(--pt-navy); color:#fff; }
.pt-sbanner p{ margin:0 0 6px; font-size:13px; color:var(--pt-orange); font-weight:800; }
.pt-sbanner h1{ margin:0; font-size:32px; font-weight:900; color:#fff; }
.pt-sub{ padding:50px 0 100px; }

/* ---------------------------------------------------------- 1. 히어로 */
.pt-hero{ position:relative; padding:90px 0; color:#fff;
  background:linear-gradient(90deg, rgba(12,24,40,.94) 0%, rgba(12,24,40,.8) 45%, rgba(12,24,40,.45) 100%), var(--pt-hero, none) center / cover no-repeat, var(--pt-navy); }
.pt-hero__in{ display:grid; grid-template-columns:1fr 360px; gap:48px; align-items:center; }
.pt-hero__kicker{ display:inline-block; margin:0 0 18px; padding:6px 12px; border-left:3px solid var(--pt-orange); background:rgba(255,255,255,.08); font-size:14px; font-weight:700; color:#ffd7b0; }
.pt-hero h1{ margin:0; font-size:clamp(32px, 4vw, 52px); font-weight:900; line-height:1.3; letter-spacing:-.05em; color:#fff; }
.pt-hero h1 em{ font-style:normal; color:var(--pt-orange); }
.pt-hero__desc{ max-width:32em; margin:20px 0 30px; font-size:17.5px; line-height:1.75; color:#cfd8e3; }
.pt-hero__tels{ display:flex; flex-wrap:wrap; gap:10px; }
.pt-quick{ display:grid; gap:8px; padding:26px; border-radius:10px; background:#fff; color:var(--pt-body); box-shadow:0 30px 50px -30px rgba(0,0,0,.6); }
.pt-quick h3{ display:flex; align-items:center; gap:8px; margin:0 0 8px; font-size:19px; font-weight:900; color:var(--pt-navy); }
.pt-quick h3 .pt-ico{ color:var(--pt-orange); }
.pt-quick label{ font-size:13.5px; font-weight:800; color:var(--pt-ink); }
.pt-quick input, .pt-quick select{ height:46px; padding:0 12px; border:1px solid var(--pt-line); border-radius:6px; font:inherit; font-size:15.5px; background:var(--pt-steel); }
.pt-quick button{ display:flex; align-items:center; justify-content:center; gap:6px; height:50px; margin-top:6px; border:0; border-radius:6px; background:var(--pt-navy); color:#fff; font:inherit; font-size:16px; font-weight:800; cursor:pointer; }
.pt-quick button:hover{ background:var(--pt-navy2); }
.pt-quick button .pt-ico{ width:18px; height:18px; }
.pt-quick p{ margin:2px 0 0; font-size:12.5px; color:var(--pt-mute); text-align:center; }

/* ---------------------------------------------------------- 공통 구역 */
.pt-sec{ padding:96px 0; }
.pt-head{ margin:0 0 42px; }
.pt-head h2{ margin:8px 0 0; font-size:36px; font-weight:900; letter-spacing:-.05em; color:var(--pt-navy); }
.pt-head p:not(.pt-en){ margin:12px 0 0; font-size:16.5px; line-height:1.7; }

/* ---------------------------------------------------------- 2. 취급 장비 */
.pt-machines__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin:0; padding:0; list-style:none; }
.pt-machines__grid li{ border:1px solid var(--pt-line); border-radius:10px; overflow:hidden; background:#fff; }
.pt-machines__img{ display:block; aspect-ratio:1; background:var(--pt-steel); }
.pt-machines__img img{ width:100%; height:100%; object-fit:cover; display:block; }
.pt-machines__grid h3{ margin:18px 20px 6px; font-size:20px; font-weight:900; color:var(--pt-navy); }
.pt-machines__grid p{ margin:0 20px 22px; font-size:14.5px; line-height:1.65; }

/* ---------------------------------------------------------- 3. 주요 부품 */
.pt-parts{ background:var(--pt-steel); }
.pt-parts__grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin:0; padding:0; list-style:none; }
.pt-parts__grid li{ display:grid; grid-template-columns:180px 1fr; align-items:center; gap:22px; padding:16px; border-radius:10px; background:#fff; }
.pt-parts__grid img{ width:100%; height:auto; aspect-ratio:1; object-fit:cover; border-radius:8px; display:block; }
.pt-parts__grid h3{ margin:0 0 8px; font-size:20px; font-weight:900; color:var(--pt-navy); }
.pt-parts__grid p{ margin:0; font-size:15px; line-height:1.7; }
.pt-chips{ display:flex; flex-wrap:wrap; gap:8px; margin:24px 0 0; padding:0; list-style:none; }
.pt-chips li{ display:inline-flex; align-items:center; gap:6px; padding:9px 14px; border-radius:999px; background:#fff; border:1px solid var(--pt-line); font-size:14.5px; font-weight:700; color:var(--pt-ink); }
.pt-chips .pt-ico{ width:16px; height:16px; color:var(--pt-orange); }

/* ---------------------------------------------------------- 4. 문의 방법 */
.pt-steps{ padding:70px 0; background:var(--pt-navy); color:#cfd8e3; }
.pt-steps h2{ margin:0 0 30px; font-size:28px; font-weight:900; color:#fff; }
.pt-steps ol{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin:0; padding:0; list-style:none; }
.pt-steps li{ position:relative; padding:22px; border-radius:10px; background:var(--pt-navy2); }
.pt-steps li span{ display:block; font-size:28px; font-weight:900; color:var(--pt-orange); font-variant-numeric:tabular-nums; }
.pt-steps li strong{ display:block; margin:8px 0 6px; font-size:18px; color:#fff; }
.pt-steps li small{ display:block; font-size:14px; line-height:1.6; }

/* ---------------------------------------------------------- 5. 제품 라인업 */
.pt-lineup__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin:0; padding:0; list-style:none; }
.pt-lineup__grid a{ position:relative; display:flex; flex-direction:column; height:100%; padding:24px 22px 20px; border:1px solid var(--pt-line); border-radius:14px; color:inherit; text-decoration:none; transition:border-color .2s, box-shadow .2s; }
.pt-lineup__grid a:hover{ border-color:var(--pt-orange); box-shadow:0 16px 30px -24px rgba(0,0,0,.4); }
.pt-lineup__grid em{ align-self:flex-start; margin-bottom:10px; padding:3px 9px; border-radius:4px; background:var(--pt-steel); font-style:normal; font-size:12px; font-weight:800; color:var(--pt-navy); }
.pt-lineup__grid h3{ margin:0; font-size:21px; font-weight:900; color:var(--pt-ink); }
.pt-lineup__grid p{ margin:6px 0 0; font-size:13.5px; line-height:1.55; color:var(--pt-mute); }
.pt-lineup__img{ display:block; margin:14px 0 8px; aspect-ratio:460/380; }
.pt-lineup__img img{ width:100%; height:100%; object-fit:contain; display:block; }
.pt-lineup__more{ display:inline-flex; align-items:center; gap:5px; margin-top:auto; font-size:14px; font-weight:800; color:var(--pt-orange); }
.pt-lineup__more .pt-ico{ width:16px; height:16px; }
.pt-source{ margin:16px 0 0; font-size:12.5px; color:var(--pt-mute); text-align:right; }

/* ---------------------------------------------------------- 6. 부품 문의 */
.pt-inquiry{ background:var(--pt-steel); }
.pt-inquiry__in{ display:grid; grid-template-columns:.75fr 1.25fr; gap:48px; align-items:start; }
.pt-inquiry__side h2{ margin:8px 0 0; font-size:36px; font-weight:900; color:var(--pt-navy); }
.pt-inquiry__side > p:not(.pt-en){ margin:14px 0 22px; font-size:16px; line-height:1.75; }
.pt-inquiry__tel{ display:inline-flex; align-items:center; gap:10px; font-size:32px; font-weight:900; color:var(--pt-orange); text-decoration:none; font-variant-numeric:tabular-nums; }
.pt-inquiry__tel .pt-ico{ width:30px; height:30px; }
.pt-hours{ margin:22px 0 0; border-top:2px solid var(--pt-navy); }
.pt-hours div{ display:flex; justify-content:space-between; padding:11px 0; border-bottom:1px solid var(--pt-line); }
.pt-hours dt{ font-weight:700; color:var(--pt-ink); }
.pt-hours dd{ margin:0; font-variant-numeric:tabular-nums; }
.pt-form{ display:grid; grid-template-columns:1fr 1fr; gap:16px; padding:30px; border-radius:12px; background:#fff; box-shadow:0 20px 40px -32px rgba(0,0,0,.4); }
.pt-form__row{ display:flex; flex-direction:column; gap:7px; min-width:0; }
.pt-form__row.is-wide, .pt-form__agree, .pt-form__err, .pt-form__submit, .pt-form__done{ grid-column:1 / -1; }
.pt-form label, .pt-form__lb{ display:inline-flex; align-items:center; gap:6px; font-size:14.5px; font-weight:800; color:var(--pt-ink); }
.pt-form label b, .pt-form__lb b{ color:var(--pt-orange); }
.pt-form__lb small{ font-weight:500; color:var(--pt-mute); }
.pt-form__lb .pt-ico{ width:18px; height:18px; color:var(--pt-orange); }
.pt-form input[type="text"], .pt-form input[type="tel"], .pt-form select, .pt-form textarea{ width:100%; box-sizing:border-box; height:50px; padding:0 14px; border:1px solid var(--pt-line); border-radius:6px; font:inherit; font-size:16px; background:#fff; }
.pt-form textarea{ height:auto; padding:12px 14px; }
.pt-form input:focus, .pt-form select:focus, .pt-form textarea:focus{ border-color:var(--pt-orange); }
.pt-files{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.pt-file{ position:relative; display:flex !important; align-items:center; justify-content:center; min-height:64px; padding:10px; border:1.5px dashed #b9c2cd; border-radius:8px; background:var(--pt-steel); font-weight:700 !important; color:var(--pt-body) !important; cursor:pointer; text-align:center; overflow:hidden; }
.pt-file input{ position:absolute; inset:0; opacity:0; cursor:pointer; }
.pt-file span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:100%; font-size:14px; }
.pt-file.is-picked{ border-style:solid; border-color:var(--pt-orange); background:#fff6ec; color:var(--pt-orange-d) !important; }
.pt-file:focus-within{ outline:3px solid var(--pt-orange); outline-offset:2px; }
.pt-form__captcha #captcha legend{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.pt-form__captcha fieldset{ margin:0; padding:0; border:0; }
.pt-form__agree{ padding:14px 16px; border-radius:8px; background:var(--pt-steel); font-size:14px; }
.pt-form__agree label{ display:inline-flex; gap:6px; align-items:center; }
.pt-form__agree a{ margin-left:8px; color:var(--pt-orange-d); font-size:13.5px; }
.pt-form__agree p{ margin:6px 0 0; font-size:12.5px; color:var(--pt-mute); }
.pt-form__err{ margin:0; padding:10px 14px; border-radius:6px; background:#fdecea; color:#a3211d; font-weight:700; }
.pt-form__done{ display:flex; gap:10px; align-items:center; margin:0; padding:14px 16px; border-radius:8px; background:#e8f4ec; color:#1d6b3f; font-weight:800; }
.pt-form__submit{ height:58px; border:0; border-radius:8px; background:var(--pt-orange); color:#fff; font:inherit; font-size:18px; font-weight:900; cursor:pointer; }
.pt-form__submit:hover{ background:var(--pt-orange-d); }
.pt-form__submit:disabled{ opacity:.6; cursor:wait; }

/* ---------------------------------------------------------- 7. 오시는 길 */
.pt-visit{ padding:80px 0; }
.pt-visit__in{ display:grid; grid-template-columns:1fr 1fr; gap:56px; }
.pt-visit h2{ margin:8px 0 20px; font-size:32px; font-weight:900; color:var(--pt-navy); }
.pt-visit__list{ display:grid; gap:14px; margin:0; padding:0; list-style:none; font-size:16px; line-height:1.7; }
.pt-visit__list li{ display:flex; gap:12px; }
.pt-visit__list .pt-ico{ width:22px; height:22px; color:var(--pt-orange); margin-top:2px; }
.pt-visit__list a{ color:var(--pt-navy); font-weight:800; }
.pt-news h3{ display:flex; justify-content:space-between; align-items:baseline; margin:0 0 10px; font-size:20px; font-weight:900; color:var(--pt-navy); }
.pt-news h3 a{ font-size:13px; font-weight:600; color:var(--pt-mute); }
.pt-news ul{ margin:0; padding:0; list-style:none; border-top:2px solid var(--pt-navy); }
.pt-news li{ display:flex; justify-content:space-between; gap:12px; padding:14px 0; border-bottom:1px solid var(--pt-line); }
.pt-news li a{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--pt-ink); text-decoration:none; }
.pt-news li a:hover{ color:var(--pt-orange); }
.pt-news time{ flex:none; font-size:13.5px; color:var(--pt-mute); font-variant-numeric:tabular-nums; }

/* ---------------------------------------------------------- 푸터 */
.pt-footer{ padding:48px 0 56px; background:#0e1b2c; color:#8d9aab; font-size:13.5px; }
.pt-footer__in{ display:grid; grid-template-columns:auto 1fr auto; gap:40px; align-items:start; }
.pt-footer__brand strong{ display:block; font-size:20px; font-weight:900; color:#fff; }
.pt-footer__brand p{ margin:4px 0 0; }
.pt-footer__nav{ display:flex; flex-wrap:wrap; gap:6px 18px; margin:0 0 12px; padding:0; list-style:none; }
.pt-footer__nav a{ color:#cfd8e3; text-decoration:none; }
.pt-footer__co{ line-height:1.9; }
.pt-footer__co p{ margin:0; }
.pt-footer__copy{ margin:10px 0 0; font-size:12px; color:#5f6c7c; }
.pt-footer__tel{ text-align:right; }
.pt-footer__tel a{ display:block; color:#fff; text-decoration:none; font-size:24px; font-weight:900; font-variant-numeric:tabular-nums; }
.pt-footer__tel a.is-sub{ font-size:16px; color:#b7c3d3; margin-top:4px; }
.pt-footer__tel small{ display:block; font-size:12px; font-weight:700; color:var(--pt-orange); }
.pt-dock{ display:none; }

/* ---------------------------------------------------------- 반응형 */
@media (max-width:1100px){
  .pt-gnb, .pt-headtel{ display:none; }
  .pt-burger{ display:block; }
  .pt-header__in{ height:66px; }
  .pt-hero__in, .pt-inquiry__in, .pt-visit__in{ grid-template-columns:1fr; gap:34px; }
  .pt-quick{ max-width:520px; }
  .pt-machines__grid, .pt-lineup__grid{ grid-template-columns:repeat(2,1fr); }
  .pt-parts__grid{ grid-template-columns:1fr; }
  .pt-steps ol{ grid-template-columns:repeat(2,1fr); }
  .pt-footer__in{ grid-template-columns:1fr; gap:22px; }
  .pt-footer__tel{ text-align:left; }
}
@media (max-width:640px){
  body{ font-size:15.5px; padding-bottom:62px; }
  .pt-wrap{ padding:0 18px; }
  .pt-top__in span:last-child{ display:none; }
  .pt-top{ font-size:12px; }
  .pt-logo__txt strong{ font-size:19px; }
  .pt-logo__txt small{ display:none; }
  .pt-hero{ padding:54px 0 40px; }
  .pt-hero h1{ font-size:28px; }
  .pt-hero__desc{ font-size:15.5px; margin:14px 0 22px; }
  .pt-btn{ font-size:17px; padding:13px 20px; }
  .pt-quick{ padding:20px; }
  .pt-sec{ padding:64px 0; }
  .pt-head h2, .pt-inquiry__side h2{ font-size:28px; }
  .pt-machines__grid{ gap:10px; }
  .pt-machines__grid h3{ margin:12px 12px 4px; font-size:17px; }
  .pt-machines__grid p{ margin:0 12px 14px; font-size:13px; }
  .pt-parts__grid li{ grid-template-columns:96px 1fr; gap:14px; padding:12px; }
  .pt-parts__grid h3{ font-size:17px; }
  .pt-parts__grid p{ font-size:13.5px; }
  .pt-steps ol{ grid-template-columns:1fr; }
  .pt-lineup__grid{ grid-template-columns:1fr 1fr; gap:10px; }
  .pt-lineup__grid a{ padding:16px 14px 14px; }
  .pt-lineup__grid h3{ font-size:16px; }
  .pt-lineup__grid p{ font-size:12px; }
  .pt-form{ grid-template-columns:1fr; padding:20px 16px; }
  .pt-inquiry__tel{ font-size:28px; }
  .pt-dock{ position:fixed; left:0; right:0; bottom:0; z-index:90; display:grid; grid-auto-flow:column; grid-auto-columns:1fr; background:var(--pt-navy); transition:transform .25s; }
  .pt-dock a{ display:flex; flex-direction:column; align-items:center; gap:3px; padding:9px 0 10px; color:#fff; text-decoration:none; font-size:12.5px; font-weight:700; }
  .pt-dock a.is-key{ background:var(--pt-orange); }
  .pt-dock .pt-ico{ width:20px; height:20px; }
  .pt-dock.is-off{ transform:translateY(110%); }
}
