@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Oswald:wght@500;600;700&family=Space+Mono:wght@400;700&family=Fraunces:ital,opsz,wght@1,9..144,420;1,9..144,560&display=swap');
html{ scroll-behavior:smooth; }

.pm{
  --bg:#08080a; --panel:#0d0d10; --card:#121215; --ink:#f4f3f0; --ink-soft:#a3a19b;
  --line:rgba(255,255,255,.09); --line-hard:rgba(255,255,255,.17);
  --brand:#ff6a00; --brand-deep:#ff8524; --brand-soft:#ffb35c; --on-brand:#120a02;
  --f-disp:'Oswald',sans-serif; --f-mono:'Space Mono',ui-monospace,monospace; --f-body:'Inter',system-ui,sans-serif;
  --f-serif:'Fraunces',Georgia,serif;
  font-family:var(--f-body); background:var(--bg); color:var(--ink);
  overflow:hidden; -webkit-font-smoothing:antialiased;
}
.pm *{ box-sizing:border-box; }
.pm img{ max-width:100%; display:block; }

/* ---- shared primitives ---- */
.pm .sec{ padding:96px 54px; }
.pm .sec.alt{ background:var(--panel); }
.pm .sec{ border-top:1px solid var(--line); }
.pm .wrap{ max-width:1140px; margin:0 auto; }

/* section header: mono kicker + big display title, left aligned */
.pm .sechead{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px;
  border-bottom:1px solid var(--line); padding-bottom:20px; margin-bottom:44px; }
.pm .kick{ font-family:var(--f-mono); font-size:11px; letter-spacing:.26em; text-transform:uppercase;
  color:var(--brand); font-weight:700; }
.pm .sechead h2{ font-family:var(--f-disp); font-weight:600; font-size:42px; line-height:.98;
  text-transform:uppercase; margin:10px 0 0; letter-spacing:.01em; color:#fff; }
.pm .sechead .idx{ font-family:var(--f-mono); font-size:11px; color:var(--ink-soft); letter-spacing:.12em; white-space:nowrap; }
/* serif accent — the showroom counterpoint to the shop's industrial voice */
.pm .ac{ font-family:var(--f-serif); font-style:italic; font-weight:480; text-transform:none;
  letter-spacing:0; color:var(--brand-soft);
  background:linear-gradient(115deg, var(--brand-soft), var(--brand) 82%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }

/* buttons — squared, industrial */
.pm .btn{ display:inline-flex; align-items:center; gap:8px; padding:16px 28px; font-weight:700; font-size:12.5px;
  letter-spacing:.09em; text-transform:uppercase; font-family:var(--f-mono); text-decoration:none; cursor:pointer;
  border:1px solid transparent; border-radius:2px; transition:transform .16s, box-shadow .16s, background .16s, color .16s, border-color .16s; }
.pm .btn-y{ background:linear-gradient(160deg, var(--brand-deep), var(--brand) 62%, #f05800); color:var(--on-brand);
  border-color:rgba(255,180,110,.5); box-shadow:0 12px 34px rgba(255,106,0,.28), inset 0 1px 0 rgba(255,255,255,.28); }
.pm .btn-y:hover{ transform:translateY(-2px); box-shadow:0 16px 42px rgba(255,106,0,.42), inset 0 1px 0 rgba(255,255,255,.3); }
.pm .btn-ow{ background:rgba(255,255,255,.04); color:#fff; border-color:var(--line-hard);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.pm .btn-ow:hover{ border-color:rgba(255,106,0,.7); color:var(--brand-soft); background:rgba(255,106,0,.07); }

/* scroll reveal */
.pm .rv{ opacity:0; transform:translateY(16px); transition:opacity .5s ease, transform .5s ease; }
.pm .rv.in{ opacity:1; transform:none; }

/* ---- utility ticker ---- */
.pm .util{ background:#000; color:#8f8f97; font-family:var(--f-mono); font-size:11px; letter-spacing:.08em;
  display:flex; justify-content:space-between; padding:8px 54px; text-transform:uppercase; border-bottom:1px solid var(--line); }
.pm .util a{ color:#fff; text-decoration:none; }
.pm .util a:hover{ color:var(--brand); }

/* ---- nav ---- */
.pm .nav{ position:sticky; top:0; z-index:50; display:flex; justify-content:space-between; align-items:center;
  padding:15px 54px; background:rgba(8,8,10,.78); backdrop-filter:blur(16px) saturate(1.4);
  -webkit-backdrop-filter:blur(16px) saturate(1.4); border-bottom:1px solid var(--line); }
.pm .nav .lg{ display:flex; align-items:center; gap:11px; text-decoration:none; color:#fff;
  font-family:var(--f-disp); font-weight:700; font-size:25px; text-transform:uppercase; line-height:1; letter-spacing:.02em; }
.pm .nav .lg .mark{ color:var(--brand); font-size:15px; }
.pm .nav .lg .txt span{ color:var(--brand); }
.pm .nav .lg .est{ font-family:var(--f-mono); font-size:10px; font-weight:400; letter-spacing:.12em; color:var(--ink-soft);
  border-left:1px solid var(--line); padding-left:11px; margin-left:4px; text-transform:uppercase; }
.pm .nav .mn{ display:flex; align-items:center; gap:26px; }
.pm .nav .mn a{ font-family:var(--f-mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase;
  color:#c8c8ce; font-weight:400; text-decoration:none; transition:color .15s; }
.pm .nav .mn a:hover{ color:var(--brand); }
.pm .nav .mn .callnum{ color:#fff; }
.pm .nav .mn .cta{ background:var(--brand); color:var(--on-brand); padding:9px 16px; border-radius:2px;
  font-weight:700; transition:transform .16s, background .16s; }
.pm .nav .mn .cta:hover{ background:var(--brand-deep); transform:translateY(-2px); color:var(--on-brand); }
.pm .nav-burger{ display:none; background:none; border:0; font-size:24px; color:#fff; cursor:pointer; }

/* ---- hero: full-bleed '68 Camaro, graded dark ---- */
.pm .hero{ position:relative; display:flex; align-items:center; overflow:hidden;
  min-height:min(88vh, 920px); min-height:min(88svh, 920px); padding:110px 54px 130px; }
.pm .hero-bg{ position:absolute; inset:0; z-index:0; }
.pm .hero-bg img{ width:100%; height:100%; object-fit:cover; object-position:64% 42%;
  filter:saturate(.94) contrast(1.05) brightness(.9); }
/* cinematic grade: readable copy panel left, seamless fade into the page below */
.pm .hero-bg::after{ content:""; position:absolute; inset:0;
  background:
    linear-gradient(92deg, rgba(8,8,10,.94) 0%, rgba(8,8,10,.78) 30%, rgba(8,8,10,.32) 58%, rgba(8,8,10,.12) 78%, rgba(8,8,10,.42) 100%),
    linear-gradient(180deg, rgba(8,8,10,.66) 0%, rgba(8,8,10,.12) 22%, rgba(8,8,10,0) 55%, rgba(8,8,10,.55) 84%, var(--bg) 100%); }
/* film grain */
.pm .hero::after{ content:""; position:absolute; inset:0; z-index:2; pointer-events:none; opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.pm .hero-inner{ position:relative; z-index:3; width:100%; max-width:1200px; margin:0 auto; }
.pm .hero-copy{ text-align:left; max-width:660px; }
.pm .hero .tagline{ font-family:var(--f-mono); font-size:12px; letter-spacing:.24em; text-transform:uppercase;
  color:var(--brand-soft); display:inline-block; margin-bottom:22px; }
.pm .hero h1{ font-family:var(--f-disp); font-weight:600; font-size:clamp(44px, 5.6vw, 72px); line-height:1; margin:0 0 22px;
  text-transform:uppercase; letter-spacing:.005em; color:#fff; text-wrap:balance; }
.pm .hero h1 .ac{ display:block; font-size:.92em; line-height:1.12; padding-right:.08em; }
.pm .hero p{ font-size:17px; line-height:1.65; max-width:480px; margin:0 0 30px; color:#d9d7d2; }
.pm .hero-btns{ display:flex; gap:12px; flex-wrap:wrap; }
/* glass spec strip */
.pm .specbar{ display:flex; gap:0; margin-top:42px; max-width:560px; border:1px solid var(--line-hard); border-radius:3px;
  overflow:hidden; background:rgba(8,8,10,.42); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06); }
.pm .specbar .cell{ flex:1; padding:16px 20px; border-right:1px solid var(--line); }
.pm .specbar .cell:last-child{ border-right:0; }
.pm .specbar b{ display:block; font-family:var(--f-disp); font-weight:600; font-size:27px; color:var(--brand-soft); line-height:1; }
.pm .specbar span{ font-family:var(--f-mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); }
/* car ident tag */
.pm .hero-tag{ position:absolute; right:54px; bottom:26px; z-index:3; font-family:var(--f-mono); font-size:10px;
  letter-spacing:.16em; text-transform:uppercase; color:rgba(244,243,240,.66); background:rgba(8,8,10,.45);
  border:1px solid var(--line); padding:6px 11px; border-radius:2px; backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
/* orchestrated load-in */
@keyframes heroRise{ from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:none; } }
.pm .hero-copy > *{ animation:heroRise .7s cubic-bezier(.22,.7,.3,1) both; }
.pm .hero-copy > *:nth-child(2){ animation-delay:.08s; }
.pm .hero-copy > *:nth-child(3){ animation-delay:.16s; }
.pm .hero-copy > *:nth-child(4){ animation-delay:.24s; }
.pm .hero-copy > *:nth-child(5){ animation-delay:.34s; }

/* ---- services: numbered capability index + hover photo reveal ---- */
.pm .svcgrid{ display:grid; grid-template-columns:1.12fr .88fr; gap:48px; align-items:stretch; }
.pm .svclist{ border-top:1px solid var(--line); }
/* photo reveal panel — crossfades to the hovered capability */
.pm .svcvis{ position:relative; border:1px solid var(--line-hard); border-radius:4px; overflow:hidden;
  min-height:520px; background:#101013; box-shadow:0 30px 80px rgba(0,0,0,.55); }
.pm .svcvis img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0;
  transform:scale(1.06); transition:opacity .45s ease, transform .9s cubic-bezier(.22,.7,.3,1);
  filter:saturate(.92) contrast(1.05); }
.pm .svcvis img.on{ opacity:1; transform:scale(1); }
.pm .svcvis::before{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg, rgba(8,8,10,.25) 0%, transparent 30%, transparent 55%, rgba(8,8,10,.78) 100%); }
.pm .svcvis-tag{ position:absolute; left:14px; bottom:14px; z-index:2; font-family:var(--f-mono); font-size:10px;
  letter-spacing:.16em; text-transform:uppercase; color:rgba(244,243,240,.85); background:rgba(8,8,10,.5);
  border:1px solid var(--line); padding:6px 11px; border-radius:2px; backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
.pm .svc .thumb{ display:none; }
.pm .svc{ display:grid; grid-template-columns:52px 52px 1fr 30px; align-items:center; gap:18px;
  padding:26px 6px; border-bottom:1px solid var(--line); text-decoration:none; color:inherit; cursor:pointer;
  position:relative; transition:background .18s, padding-left .18s; }
.pm .svc::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:0; background:var(--brand); transition:width .18s; }
.pm .svc:hover{ background:rgba(255,106,0,.05); padding-left:16px; }
.pm .svc:hover::before{ width:3px; }
.pm .svc .num{ font-family:var(--f-mono); font-size:15px; color:var(--ink-soft); letter-spacing:.05em; }
.pm .svc:hover .num{ color:var(--brand); }
.pm .svc .ic{ width:50px; height:50px; border:1px solid var(--line-hard); border-radius:3px; color:var(--brand);
  display:flex; align-items:center; justify-content:center; transition:background .18s, color .18s, border-color .18s; }
.pm .svc:hover .ic{ background:var(--brand); color:var(--on-brand); border-color:var(--brand); }
.pm .svc .ic svg{ width:26px; height:26px; }
.pm .svc h3{ font-family:var(--f-disp); font-size:23px; font-weight:600; text-transform:uppercase; margin:0 0 4px;
  letter-spacing:.01em; color:#fff; }
.pm .svc p{ color:var(--ink-soft); font-size:14px; line-height:1.5; margin:0; max-width:640px; }
.pm .svc .arw{ font-family:var(--f-mono); color:var(--ink-soft); font-size:18px; text-align:right; transition:color .18s, transform .18s; }
.pm .svc:hover .arw{ color:var(--brand); transform:translateX(4px); }
/* services CTA strip */
.pm .svc-cta{ display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
  margin-top:30px; padding:24px 26px; background:linear-gradient(160deg, var(--brand-deep), var(--brand) 55%, #f05800);
  border:1px solid rgba(255,180,110,.45); border-radius:4px; cursor:pointer;
  box-shadow:0 20px 50px rgba(255,106,0,.22), inset 0 1px 0 rgba(255,255,255,.25);
  transition:transform .18s, box-shadow .18s; }
.pm .svc-cta:hover{ transform:translateY(-2px); box-shadow:0 26px 60px rgba(255,106,0,.32), inset 0 1px 0 rgba(255,255,255,.25); }
.pm .svc-cta .t b{ display:block; font-family:var(--f-disp); font-size:24px; text-transform:uppercase; color:var(--on-brand); line-height:1; }
.pm .svc-cta .t span{ font-family:var(--f-mono); font-size:12px; color:#3a1e07; letter-spacing:.04em; }
.pm .svc-cta .go{ font-family:var(--f-mono); font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.06em;
  color:var(--on-brand); border:1px solid rgba(0,0,0,.4); padding:12px 20px; border-radius:2px; }

/* ---- selected work: big feature + contact-sheet gallery ---- */
.pm .worklead{ position:relative; border:1px solid var(--line-hard); border-radius:4px; overflow:hidden; margin-bottom:14px;
  box-shadow:0 30px 80px rgba(0,0,0,.6); }
.pm .worklead img{ width:100%; height:500px; object-fit:cover; filter:saturate(.94) contrast(1.04); }
.pm .worklead::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(8,8,10,0) 40%,rgba(8,8,10,.92)); }
.pm .worklead figcaption{ position:absolute; left:0; bottom:0; z-index:2; padding:26px 28px; }
.pm .worklead .tag{ font-family:var(--f-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--on-brand); background:var(--brand); padding:4px 9px; border-radius:2px; }
.pm .worklead b{ display:block; font-family:var(--f-disp); font-size:32px; text-transform:uppercase; color:#fff; margin-top:12px; line-height:1; }
.pm .worklead small{ display:block; font-family:var(--f-mono); font-size:12px; color:#cfcfd4; margin-top:6px; letter-spacing:.03em; }

/* gallery contact sheet */
.pm .gal{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:12px; }
.pm .gitem{ display:block; position:relative; overflow:hidden; border-radius:4px; aspect-ratio:1/1; cursor:zoom-in;
  background:#121215; border:1px solid var(--line); }
.pm .gitem img{ width:100%; height:100%; object-fit:cover; transition:transform .5s cubic-bezier(.22,.7,.3,1), opacity .3s, filter .3s;
  opacity:.88; filter:grayscale(.2) contrast(1.03); }
.pm .gitem::after{ content:"↗"; position:absolute; top:8px; right:10px; font-family:var(--f-mono); color:#fff; opacity:0; transition:opacity .2s; }
.pm .gitem:hover img{ transform:scale(1.06); opacity:1; filter:none; }
.pm .gitem:hover::after{ opacity:.85; }
.pm .gcount{ font-family:var(--f-mono); font-size:11px; color:var(--ink-soft); letter-spacing:.08em;
  text-transform:uppercase; margin-top:16px; text-align:right; }

/* lightbox */
.pm .lb{ position:fixed; inset:0; z-index:1100; display:none; align-items:center; justify-content:center; background:rgba(0,0,0,.93); padding:32px; }
.pm .lb.open{ display:flex; animation:qfade .2s ease; }
.pm .lb-img{ max-width:92vw; max-height:86vh; border:1px solid var(--line-hard); border-radius:3px; box-shadow:0 24px 70px rgba(0,0,0,.7); }
.pm .lb-x{ position:absolute; top:16px; right:22px; background:none; border:0; color:#fff; font-size:32px; cursor:pointer; opacity:.8; font-family:var(--f-mono); }
.pm .lb-x:hover{ opacity:1; color:var(--brand); }
.pm .lb-nav{ position:absolute; top:50%; transform:translateY(-50%); width:50px; height:50px; border-radius:2px;
  background:rgba(255,255,255,.08); border:1px solid var(--line-hard); color:#fff; font-size:26px; cursor:pointer; transition:background .15s; }
.pm .lb-nav:hover{ background:var(--brand); border-color:var(--brand); color:var(--on-brand); }
.pm .lb-prev{ left:16px; } .pm .lb-next{ right:16px; }

/* ---- heritage: story + spec table ---- */
.pm .why-grid{ display:grid; grid-template-columns:1fr 1fr; gap:52px; align-items:center; }
.pm .why-copy h2{ font-family:var(--f-disp); font-weight:600; font-size:40px; line-height:1.02; text-transform:uppercase; color:#fff; margin:14px 0 18px; }
.pm .why-copy p{ color:var(--ink-soft); font-size:15.5px; line-height:1.7; margin:0 0 14px; }
.pm .why-copy p b{ color:#fff; }
.pm .spectable{ border:1px solid var(--line-hard); border-radius:4px; background:linear-gradient(180deg, rgba(255,255,255,.025), transparent 40%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05); }
.pm .spectable .srow{ display:flex; justify-content:space-between; align-items:baseline; gap:16px;
  padding:18px 20px; border-bottom:1px solid var(--line); }
.pm .spectable .srow:last-child{ border-bottom:0; }
.pm .spectable .sk{ font-family:var(--f-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); }
.pm .spectable .sv{ font-family:var(--f-disp); font-size:26px; font-weight:600; text-transform:uppercase; color:#fff; text-align:right; line-height:1; }
.pm .spectable .sv.hl{ color:var(--brand); }

/* ---- brands ticker ---- */
.pm .marquee{ position:relative; overflow:hidden; margin-top:6px; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  -webkit-mask:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.pm .mtrack{ display:flex; gap:0; width:max-content; animation:pmMarquee 40s linear infinite; }
.pm .marquee:hover .mtrack{ animation-play-state:paused; }
.pm .mbrand{ flex:none; height:96px; min-width:190px; padding:0 34px; border-right:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; text-decoration:none; transition:background .2s; }
.pm .mbrand:hover{ background:rgba(255,106,0,.06); }
.pm .mbrand img{ max-height:28px; max-width:120px; object-fit:contain; filter:brightness(0) invert(1); opacity:.5; transition:opacity .2s; }
.pm .mbrand:hover img{ opacity:1; }
.pm .mword{ font-family:var(--f-disp); font-weight:700; font-size:24px; letter-spacing:.02em; text-transform:uppercase; color:#fff; opacity:.5; transition:opacity .2s; }
.pm .mword i{ font-style:normal; color:var(--brand); }
.pm .mbrand:hover .mword{ opacity:1; }
@keyframes pmMarquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce){ .pm .mtrack{ animation:none; } }

/* ---- quote chatbot ---- */
.pm .qwrap{ display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:center; }
.pm .qintro{ text-align:left; }
.pm .qintro h2{ font-family:var(--f-disp); font-weight:600; font-size:38px; text-transform:uppercase; color:#fff; line-height:1.02; margin:14px 0 16px; }
.pm .qintro p{ color:var(--ink-soft); font-size:15.5px; line-height:1.65; }
.pm .qcard{ width:100%; max-width:460px; text-align:left; background:linear-gradient(180deg, #16161a, var(--card));
  border:1px solid var(--line-hard); border-radius:4px; padding:22px; min-height:250px;
  box-shadow:0 30px 80px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.05); }
.pm .qcard .qh{ display:flex; gap:10px; align-items:center; margin-bottom:12px; }
.pm .qcard .dot{ width:34px; height:34px; border-radius:2px; background:linear-gradient(160deg, var(--brand-deep), var(--brand));
  display:flex; align-items:center; justify-content:center; font-size:17px; }
.pm .qcard b{ font-size:14px; color:#fff; } .pm .qcard small{ display:block; color:var(--ink-soft); font-size:11px; font-family:var(--f-mono); }
.pm .qprogress{ height:2px; background:rgba(255,255,255,.09); margin-bottom:12px; overflow:hidden; }
.pm .qprogress span{ display:block; height:100%; width:0; background:linear-gradient(90deg, var(--brand), var(--brand-soft)); transition:width .45s ease; }
.pm .qbody{ display:flex; flex-direction:column; gap:8px; max-height:250px; overflow-y:auto; padding-right:3px; margin-bottom:10px; }
.pm .qmsg{ max-width:90%; padding:9px 12px; border-radius:3px; font-size:13px; line-height:1.42; animation:qpop .28s ease; }
.pm .qmsg.bot{ background:#1f1f24; border:1px solid rgba(255,255,255,.07); color:#dedcd7; align-self:flex-start; }
.pm .qmsg.bot b{ color:#fff; }
.pm .qmsg.user{ background:var(--brand); color:var(--on-brand); align-self:flex-end; font-weight:700; }
.pm .qchips{ display:flex; flex-wrap:wrap; gap:6px; }
.pm .qchip{ background:#1e1e23; border:1px solid rgba(255,255,255,.13); border-radius:2px; padding:7px 12px; font-size:12.5px;
  color:#eceae5; cursor:pointer; font-family:var(--f-body); transition:background .15s, color .15s, border-color .15s; }
.pm .qchip:hover{ background:var(--brand); color:var(--on-brand); border-color:var(--brand); }
.pm .qinput{ display:flex; gap:7px; }
.pm .qinput input{ flex:1; background:#0e0e11; color:#fff; border:1px solid rgba(255,255,255,.15); border-radius:2px; padding:10px 12px; font-size:13px; font-family:var(--f-body); }
.pm .qinput input::placeholder{ color:#7c7a75; }
.pm .qinput input:focus{ outline:none; border-color:var(--brand); box-shadow:0 0 0 3px rgba(255,106,0,.25); }
.pm .qinput button{ background:var(--brand); color:var(--on-brand); border:0; border-radius:2px; padding:0 16px; font-weight:700;
  font-size:12px; letter-spacing:.05em; text-transform:uppercase; cursor:pointer; font-family:var(--f-mono); }
.pm .qinput button:hover{ background:var(--brand-deep); }
.pm .qtyping{ display:inline-flex !important; gap:3px; align-items:center; }
.pm .qtyping i{ width:6px; height:6px; border-radius:50%; background:#6c6a66; animation:qdot 1s infinite; }
.pm .qtyping i:nth-child(2){ animation-delay:.15s; } .pm .qtyping i:nth-child(3){ animation-delay:.3s; }
.pm .qsummary{ background:rgba(255,106,0,.1); border:1px dashed var(--brand); color:#ececf0; }
.pm .qrestart{ background:none; border:1px solid var(--line); border-radius:2px; padding:8px 12px; font-size:12px;
  cursor:pointer; font-family:var(--f-mono); color:var(--ink-soft); text-transform:uppercase; letter-spacing:.05em; }
@keyframes qpop{ from{ opacity:0; transform:translateY(6px);} to{ opacity:1; transform:none;} }
@keyframes qdot{ 0%,60%,100%{ opacity:.3; transform:translateY(0);} 30%{ opacity:1; transform:translateY(-3px);} }

/* modal */
.pm .qmodal{ position:fixed; inset:0; z-index:1000; display:none; align-items:center; justify-content:center; background:rgba(0,0,0,.8); backdrop-filter:blur(4px); padding:20px; }
.pm .qmodal.open{ display:flex; animation:qfade .2s ease; }
.pm .qmodal-card{ width:100% !important; max-width:540px; margin:0 !important; padding:26px !important; }
.pm .qmodal-card .qbody{ max-height:min(62vh, 520px); }
/* pop-out modal inherits the same dark premium card styling as the inline card */
.pm .qmodal-x{ position:absolute; top:8px; right:12px; background:none; border:0; color:var(--ink-soft); font-size:24px; line-height:1; cursor:pointer; z-index:4; padding:2px 6px; }
.pm .qmodal-x:hover{ color:#fff; }
@keyframes qfade{ from{ opacity:0;} to{ opacity:1;} }

/* ---- footer ---- */
.pm .ftwrap{ background:#060608; color:#c2c2c8; border-top:1px solid rgba(255,106,0,.45); }
.pm .ftgrid{ display:grid; grid-template-columns:1.1fr 1fr 1.2fr; gap:40px; padding:56px 54px; }
.pm .ftbrand{ font-family:var(--f-disp); font-weight:700; font-size:26px; text-transform:uppercase; color:#fff; }
.pm .ftbrand .mark{ color:var(--brand); } .pm .ftbrand .hl{ color:var(--brand); }
.pm .fttag{ font-size:14px; line-height:1.6; color:#9c9ca2; margin:12px 0 18px; max-width:300px; }
.pm .ftsocial{ display:flex; gap:10px; margin-bottom:18px; }
.pm .ftsocial a{ width:38px; height:38px; border-radius:2px; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; color:#c2c2c8; transition:background .15s, color .15s, border-color .15s; }
.pm .ftsocial a svg{ width:19px; height:19px; }
.pm .ftsocial a:hover{ background:var(--brand); color:var(--on-brand); border-color:var(--brand); }
.pm .ftguarantee{ font-family:var(--f-mono); font-size:12px; line-height:1.5; color:#c2c2c8; background:rgba(255,106,0,.09);
  border:1px solid rgba(255,106,0,.3); border-radius:2px; padding:11px 13px; margin-bottom:16px; max-width:300px; }
.pm .ftguarantee b{ color:#fff; }
.pm .ftcredit{ font-family:var(--f-mono); font-size:11px; color:#82828a; letter-spacing:.03em; }
.pm .ftcredit a{ color:var(--brand); text-decoration:none; }
.pm .ftcredit a:hover{ text-decoration:underline; }
.pm .ftcontact h4{ font-family:var(--f-disp); font-size:18px; text-transform:uppercase; color:#fff; margin:0 0 16px; letter-spacing:.04em; }
.pm .ftcontact .row{ font-size:14px; margin-bottom:11px; line-height:1.5; color:#b4b4ba; }
.pm .ftcontact .row b{ display:inline-block; min-width:64px; font-family:var(--f-mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--brand); }
.pm .ftcontact a{ color:#fff; text-decoration:none; } .pm .ftcontact a:hover{ color:var(--brand); }
.pm .ftmap{ border-radius:3px; overflow:hidden; min-height:220px; border:1px solid var(--line); }
.pm .ftmap iframe{ width:100%; height:100%; min-height:220px; border:0; display:block; filter:grayscale(.3) invert(.92) contrast(.9); }
.pm .ftbar{ border-top:1px solid var(--line); padding:16px 54px; font-family:var(--f-mono); font-size:11px; color:#75757c; text-align:center; letter-spacing:.06em; text-transform:uppercase; }

/* focus */
.pm a:focus-visible, .pm button:focus-visible, .pm .qchip:focus-visible, .pm input:focus-visible{ outline:2px solid var(--brand); outline-offset:2px; }

/* reduced motion */
@media (prefers-reduced-motion: reduce){
  .pm .rv{ opacity:1 !important; transform:none !important; transition:none !important; }
  .pm *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; }
  html{ scroll-behavior:auto; }
}

/* tablet */
@media (max-width: 940px){
  .pm .why-grid, .pm .qwrap{ grid-template-columns:1fr; gap:34px; }
  .pm .ftgrid{ grid-template-columns:1fr 1fr; }
  .pm .ftmap{ grid-column:1 / -1; min-height:260px; }
  .pm .hero-bg img{ object-position:58% 45%; }
  /* narrow screens: copy spans the full width, so grade the whole frame darker */
  .pm .hero-bg::after{ background:
    linear-gradient(180deg, rgba(8,8,10,.86) 0%, rgba(8,8,10,.62) 30%, rgba(8,8,10,.34) 56%, rgba(8,8,10,.62) 82%, var(--bg) 100%),
    linear-gradient(92deg, rgba(8,8,10,.55) 0%, rgba(8,8,10,.18) 70%, rgba(8,8,10,.3) 100%); }
  .pm .svcgrid{ grid-template-columns:1fr; gap:0; }
  .pm .svcvis{ display:none; }
}

/* mobile */
@media (max-width: 640px){
  .pm .util{ display:none; }
  .pm .sec{ padding:60px 20px; }
  .pm .hero{ padding:96px 20px 100px; min-height:min(92svh, 780px); }
  .pm .hero h1{ font-size:clamp(38px, 11vw, 46px); }
  .pm .hero-bg img{ object-position:60% 45%; }
  .pm .hero-tag{ right:20px; bottom:14px; font-size:9px; letter-spacing:.12em; }
  .pm .sechead{ flex-direction:column; align-items:flex-start; gap:6px; }
  .pm .sechead h2, .pm .why-copy h2, .pm .qintro h2{ font-size:32px; }
  .pm .nav{ flex-wrap:wrap; padding:14px 20px; }
  .pm .nav-burger{ display:block; }
  .pm .nav .mn{ display:none; flex-direction:column; align-items:flex-start; gap:16px; width:100%; margin-top:14px; }
  .pm .nav.open .mn{ display:flex; }
  .pm .nav .mn .cta{ width:100%; text-align:center; }
  .pm .specbar{ flex-direction:column; }
  .pm .specbar .cell{ border-right:0; border-bottom:1px solid var(--line); }
  .pm .specbar .cell:last-child{ border-bottom:0; }
  .pm .svc{ grid-template-columns:64px 1fr; gap:14px; padding:20px 2px; }
  .pm .svc .ic{ display:none; }
  .pm .svc .arw{ display:none; }
  .pm .svc .num{ display:none; }
  .pm .svc .thumb{ display:block; width:64px; height:64px; object-fit:cover; border-radius:3px;
    border:1px solid var(--line); filter:saturate(.92) contrast(1.05); }
  .pm .worklead img{ height:280px; }
  .pm .ftgrid{ grid-template-columns:1fr; gap:28px; padding:44px 20px; }
}
