/* JPM 4.0 — shared neutral foundations for the editorial showroom. */
:root {
  --ink:#181818;
  --ink-2:#242424;
  --ink-3:#343434;
  --paper:#f5f3ef;
  --paper-2:#eae7e2;
  --muted:#64615d;
  --acid:#c93625;
  --acid-dark:#ab291a;
  --line:rgba(20,20,20,.12);
  --shadow:0 18px 45px rgba(20,20,20,.08);
  --shell:min(1360px,calc(100% - 64px));
  --display:"Arial","Helvetica Neue",sans-serif;
  --body:"Segoe UI",Inter,"Helvetica Neue",Arial,sans-serif;
  --radius-sm:14px;
  --radius-card:26px;
  --radius-panel:38px;
}
html,body{background:#f8f8f8}
body{color:var(--ink);line-height:1.65}
h1,h2,h3{font-weight:650;line-height:1.1;font-stretch:normal;letter-spacing:-.055em;text-wrap:balance}
.jpm-eyebrow{font-size:.7rem;letter-spacing:.12em;font-weight:700}
.jpm-eyebrow::before{width:7px;height:7px;border-radius:50%;margin-bottom:1px}
.jpm-heading-row h2,.jpm-services__intro h2,.jpm-heritage h2,.jpm-specs h2,.jpm-product-lead h2,.jpm-prefooter h2{font-size:clamp(2.2rem,3.8vw,3.65rem);text-transform:none;line-height:1.12}
.jpm-heading-row{gap:64px;margin-bottom:36px;grid-template-columns:minmax(0,1.2fr) minmax(240px,.8fr)}
.jpm-heading-row>p{font-size:.96rem;justify-self:end}
.jpm-section{padding:84px 0}
.jpm-section--light{background:transparent}
.jpm-section--paper{background:#efefef}
.jpm-text-link{font-size:.8rem;font-weight:650;text-transform:none;letter-spacing:0;padding:10px 0;border-color:#a2a2a2;justify-self:end;align-self:end}
.jpm-button,.jpm-header__cta,.jpm-load-more,.jpm-filter-toggle,.jpm-filter-reset{border-radius:999px;font-size:.84rem;font-weight:650;text-transform:none;letter-spacing:0}
.jpm-button{min-height:50px;padding:13px 24px}
.jpm-button:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(20,20,20,.1)}
.jpm-button--glass{background:transparent;border-color:#b0b0b0;color:var(--ink);backdrop-filter:none}
.jpm-button--glass:hover{background:#fff}
.jpm-skip{border-radius:999px}
:focus-visible{outline:3px solid #505050;outline-offset:4px;box-shadow:0 0 0 2px #fff}
.jpm-finder input:focus-visible{outline:3px solid #505050;outline-offset:2px}

/* A light navigation capsule, with a full-size touch menu on small screens. */
.jpm-topbar{background:transparent;color:#616161;height:32px;font-size:.67rem;font-weight:500;text-transform:none;letter-spacing:0}
.jpm-topbar span{color:inherit}
.jpm-topbar a:hover{color:var(--ink)}
.jpm-header{width:var(--shell);margin:8px auto 20px;height:80px;border:1px solid #e3e3e3;border-radius:999px;background:#fff;color:var(--ink);box-shadow:0 4px 20px rgba(20,20,20,.025)}
.jpm-header__inner{width:100%;padding:0 24px;gap:24px}
.jpm-header.is-sticky{left:0;right:0;top:10px;width:var(--shell);height:72px;margin:0 auto;border-radius:999px;background:rgba(255,255,255,.98);box-shadow:var(--shadow)}
.jpm-logo img{width:46px;height:46px;border-color:#e6e6e6}
.jpm-logo b{font-size:1.35rem;font-weight:800;letter-spacing:.025em}
.jpm-logo small{color:#565656;letter-spacing:.12em;font-size:.56rem}
.jpm-nav{gap:20px}
.jpm-nav .menu{gap:22px}
.jpm-nav .menu a{font-size:.79rem;text-transform:none;font-weight:600;letter-spacing:0;padding:22px 0}
.jpm-nav .menu a::after{bottom:13px;background:#666666;border-radius:99px}
.jpm-header__cta{padding:12px 20px;background:var(--ink);color:#fff;border-color:var(--ink);white-space:nowrap}
.jpm-header__cta:hover{background:#464646;color:#fff}
.jpm-menu-toggle{color:var(--ink);border-radius:50%;background:#f1f1f1}

/* Hero: airy editorial copy + a rounded photographic window. */
.jpm-hero--soft{width:var(--shell);margin:0 auto;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:18px;background:transparent;color:var(--ink);align-items:stretch}
.jpm-hero--soft .jpm-hero__content{grid-column:1;grid-row:1;width:100%;margin:0;padding:56px 44px 40px;border-radius:var(--radius-panel);background:#ececec;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.jpm-hero--soft .jpm-eyebrow{color:#515151;margin-bottom:26px}
.jpm-hero--soft h1{font-size:clamp(2.8rem,4.9vw,4.65rem);line-height:1.04;letter-spacing:-.065em;text-transform:none;max-width:100%}
.jpm-hero--soft h1 em{color:#636363}
.jpm-hero--soft .jpm-hero__lead{color:#565656;font-size:1rem;max-width:450px;margin:25px 0 28px;line-height:1.7}
.jpm-hero--soft .jpm-hero__actions{gap:9px}
.jpm-hero--soft .jpm-button--acid{background:var(--ink);color:#fff}
.jpm-hero--soft .jpm-button--acid:hover{background:#464646}
.jpm-hero-signature{display:flex;align-items:center;gap:9px;margin:32px 0 0;color:#606060;font-size:.73rem}
.jpm-hero-signature>span{display:grid;place-items:center;width:25px;height:25px;background:#dddddd;border-radius:50%;font-size:1rem}
.jpm-hero--soft .jpm-hero__visual{grid-column:2;grid-row:1;position:relative;inset:auto;z-index:auto;min-height:530px;border-radius:var(--radius-panel);isolation:isolate}
.jpm-hero--soft .jpm-hero__visual>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:76% center;opacity:1;transform:none}
.jpm-hero--soft .jpm-hero__visual::after{background:linear-gradient(0deg,rgba(20,20,20,.72),transparent 42%);z-index:0}
.jpm-hero-caption{position:absolute;left:30px;right:30px;bottom:30px;z-index:1;color:#fff;display:grid;grid-template-columns:1fr auto;align-items:center;gap:3px 18px}
.jpm-hero-caption>span{font-size:.77rem;color:#e5e5e5}
.jpm-hero-caption strong{grid-column:1;font-size:1.23rem;font-weight:550;letter-spacing:-.025em}
.jpm-hero-caption a{grid-column:2;grid-row:1/3;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--acid);color:var(--ink);font-size:1.65rem;transition:transform .2s}
.jpm-hero-caption a:hover{transform:rotate(8deg)}
.jpm-hero-proof{position:static;grid-column:1/-1;width:100%;transform:none;display:grid;grid-template-columns:.85fr .85fr .85fr 1.45fr;background:transparent;border:0;backdrop-filter:none;padding:12px 22px 0}
.jpm-hero-proof div{min-height:72px;padding:10px 24px;align-items:center;gap:14px;border-color:#dfdfdf}
.jpm-hero-proof strong{font-size:2rem;color:var(--ink);font-weight:650;letter-spacing:-.06em}
.jpm-hero-proof span{font-size:.77rem;text-transform:none;letter-spacing:0;font-weight:500;color:#696969;max-width:200px}

.jpm-finder--v2{width:var(--shell);margin:32px auto 0;background:#fff;border:1px solid #e3e3e3;border-radius:var(--radius-card);box-shadow:0 6px 20px rgba(20,20,20,.025)}
.jpm-finder--v2 .jpm-finder__inner{width:100%;padding:24px 28px;grid-template-columns:.85fr 1.2fr 1.2fr;gap:24px}
.jpm-finder h2{font-size:1.2rem;text-transform:none;letter-spacing:-.035em}
.jpm-finder .jpm-eyebrow{font-size:.6rem;color:#6d6d6d;margin-bottom:8px}
.jpm-use-links{gap:6px}
.jpm-use-links a{padding:8px 12px;border:1px solid #dfdfdf;border-radius:999px;background:#f6f6f6;color:#4a4a4a;font-size:.69rem;font-weight:600;letter-spacing:0;text-transform:none}
.jpm-finder--v2 form{min-width:0;border:1px solid #dfdfdf;border-radius:999px;padding:5px 5px 5px 18px;background:#f9f9f9}
.jpm-finder label{min-width:0}
.jpm-finder input{font-size:.8rem;padding:9px 0;border-radius:8px}
.jpm-finder--v2 form button{font-size:.72rem;border-radius:999px;padding:0 14px;background:var(--ink);color:#fff;min-height:40px;flex:none;text-transform:none}

/* Separate, softly elevated cards replace the old rigid grid lines. */
.jpm-brand-grid,.jpm-brand-grid--v2{gap:14px;border:0;background:transparent}
.jpm-brand-grid--v2>a{border:1px solid #e2e2e2;border-radius:var(--radius-card);min-height:166px;padding:23px;transition:transform .2s,box-shadow .2s,border-color .2s}
.jpm-brand-grid--v2>a:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:#b6b6b6}
.jpm-brand-grid--v2>a::before{left:23px;top:23px;bottom:auto;width:9px;height:9px;border-radius:50%;transform:none;background:var(--brand-accent)}
.jpm-brand-grid--v2>a:hover::before{transform:none}
.jpm-brand-grid--v2 small{align-self:flex-end;color:#7c7c7c;font-size:.66rem;font-weight:500}
.jpm-brand-grid--v2 strong{font-size:1.25rem;letter-spacing:-.035em;text-transform:none;font-weight:650}
.jpm-brand-grid--v2>a>span:last-child{font-size:.73rem;text-transform:none;font-weight:500;color:#696969}
.jpm-brand-grid--v2 b{width:29px;height:29px;display:grid;place-items:center;border-radius:50%;background:#f1f1f1;font-size:1.05rem}
.jpm-model-grid{gap:22px}
.jpm-model-card{border:1px solid #e2e2e2;border-radius:var(--radius-card);padding:9px;box-shadow:0 4px 18px rgba(20,20,20,.025)}
.jpm-model-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.jpm-model-card__media{border-radius:20px;background:radial-gradient(ellipse at center,#fff,#efefef);aspect-ratio:1.4}
.jpm-model-card__media::after{display:none}
.jpm-model-card__brand,.jpm-model-card__year{border-radius:999px;padding:5px 10px;letter-spacing:.02em;font-size:.62rem;font-weight:600}
.jpm-model-card__brand{left:12px;top:12px;border-color:#e1e1e1;background:rgba(255,255,255,.94)}
.jpm-model-card__year{right:12px;top:12px;background:#e6e6e6;color:#484848}
.jpm-model-card__media>img{width:92%;height:86%}
.jpm-model-card__body{padding:19px 15px 15px}
.jpm-model-card__body>p{font-size:.72rem;letter-spacing:0;text-transform:none;font-weight:500;color:#686868}
.jpm-model-card h3,.jpm-catalog--v2 .jpm-model-card h3{font-size:1.55rem;text-transform:none;letter-spacing:-.045em;line-height:1.16;margin:7px 0 12px}
.jpm-model-card__summary{min-height:0!important;font-size:.82rem!important;line-height:1.6!important}
.jpm-model-card__facts{gap:8px;background:transparent;margin:17px 0 18px;min-height:0}
.jpm-model-card__facts span{background:#f3f3f3;border-radius:12px;padding:10px;font-size:.73rem;font-weight:600}
.jpm-model-card__facts small{font-size:.61rem;letter-spacing:0;color:#606060;text-transform:none;font-weight:500}
.jpm-model-card footer{gap:8px;padding-top:16px;border-color:#eaeaea}
.jpm-model-card footer small{font-size:.62rem;color:#686868;text-transform:none;font-weight:500}
.jpm-model-card footer strong{font-size:1.3rem;font-weight:650;letter-spacing:-.04em}
.jpm-model-card footer a{font-size:.72rem;text-transform:none;background:#efefef;padding:10px 13px;border-radius:999px;font-weight:650;white-space:nowrap}

.jpm-routes,.jpm-features{background:var(--ink)}
.jpm-routes{width:var(--shell);margin:64px auto;border-radius:var(--radius-panel);padding:60px 0}
.jpm-routes>.jpm-shell{width:calc(100% - 88px)}
.jpm-route-grid{gap:14px;border:0}
.jpm-route-grid a{border:1px solid #494949!important;border-radius:24px;background:#2f2f2f;min-height:285px;padding:24px;transition:background .2s}
.jpm-route-grid a::before{display:none}
.jpm-route-grid a:hover{background:#dddddd;color:var(--ink)}
.jpm-route-grid b{width:40px;height:40px;display:grid;place-items:center;border:1px solid #797979;border-radius:50%;font-size:.85rem;left:24px;top:24px;color:#dedede}
.jpm-route-grid a:hover b{color:var(--ink);border-color:#9f9f9f}
.jpm-route-grid span{font-size:.72rem;text-transform:none;letter-spacing:0;font-weight:500}
.jpm-route-grid strong{font-size:1.65rem;text-transform:none;line-height:1.12;font-weight:600;letter-spacing:-.045em}
.jpm-route-grid i{font-size:.76rem;font-weight:500;text-transform:none;opacity:1;color:#d5d5d5}
.jpm-route-grid a:hover i{color:var(--ink)}
.jpm-services{background:transparent}
.jpm-services__cards a{border-radius:var(--radius-card);border-color:#e3e3e3;min-height:270px;padding:28px}
.jpm-services__cards a:first-child{background:#eaeaea;color:var(--ink);min-height:270px}
.jpm-services__cards a:first-child p{color:#5d5d5d}
.jpm-services__cards span,.jpm-service-grid>article>span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#f1f1f1;font-size:.85rem;font-weight:600}
.jpm-services__cards a:first-child span{background:#d8d8d8}
.jpm-services__cards h3,.jpm-service-grid h3{font-size:1.75rem;text-transform:none;line-height:1.13}
.jpm-services__cards i{font-size:.77rem;text-transform:none;font-weight:600}
.jpm-heritage{width:var(--shell);margin:0 auto 64px;padding:58px 0;background:#e9e9e9;border-radius:var(--radius-panel)}
.jpm-heritage>.jpm-shell{width:calc(100% - 88px)}
.jpm-heritage__grid{gap:70px;grid-template-columns:1.2fr .8fr;align-items:center}
.jpm-heritage dl{border:0;display:grid;gap:12px}
.jpm-heritage dl div{background:#f5f5f5;border:0;border-radius:22px;padding:22px;grid-template-columns:100px 1fr}
.jpm-heritage dt{font-size:2.4rem;font-weight:600;color:#555555}
.jpm-heritage dd{font-size:.84rem;font-weight:500;color:#5c5c5c}

/* The same shape language on the catalogue and model detail pages. */
.jpm-page-hero,.jpm-catalog-hero--v2{width:var(--shell);margin:0 auto;border:0;border-radius:var(--radius-panel);padding:58px 0;background:#ececec;color:var(--ink)}
.jpm-page-hero>.jpm-shell,.jpm-catalog-hero--v2>.jpm-shell{width:calc(100% - 88px)}
.jpm-page-hero h1,.jpm-catalog-hero--v2 h1{font-size:clamp(2.6rem,4.8vw,4.8rem);line-height:1.07;text-transform:none;max-width:960px}
.jpm-page-hero .jpm-eyebrow{color:#545454}
.jpm-page-hero>div>p:last-child:not(.jpm-eyebrow){color:#5a5a5a}
.jpm-page-hero h1 em,.jpm-catalog-hero--v2 h1 em{color:#626262}
.jpm-catalog-hero--v2{padding:36px 0}
.jpm-catalog-hero--v2 h1{font-size:clamp(2.4rem,3.8vw,3.7rem)}
.jpm-catalog-hero--v2::after{display:none}
.jpm-catalog--v2{background:transparent;padding-top:34px}
.jpm-catalog-top{grid-template-columns:minmax(0,1fr) 240px;gap:16px}
.jpm-catalog-top input,.jpm-catalog-top select{border-radius:16px;border-color:#dfdfdf;font-weight:500;padding:0 19px;height:54px}
.jpm-catalog-top label>span{font-size:.7rem;text-transform:none;letter-spacing:0;font-weight:600}
.jpm-catalog-layout{grid-template-columns:240px minmax(0,1fr);gap:24px}
.jpm-filter-panel{border:1px solid #e2e2e2;border-radius:24px;background:#fff;color:var(--ink);padding:24px}
.jpm-filter-panel__head{font-size:1.2rem;text-transform:none;font-weight:650;border-color:#e2e2e2;letter-spacing:-.035em}
.jpm-filter-panel__head button{color:var(--ink)}
.jpm-filter-panel label>span{font-size:.73rem;color:#595959;text-transform:none;letter-spacing:0;font-weight:600}
.jpm-filter-panel select{border-radius:12px;background:#f7f7f7;color:var(--ink);border-color:#dedede;font-size:.84rem;height:46px}
.jpm-filter-reset{border-color:#bdbdbd;color:#434343;font-size:.75rem;background:#f1f1f1}
.jpm-filter-panel>p{font-size:.71rem;color:#696969;line-height:1.6}
.jpm-catalog--v2 .jpm-model-grid{gap:18px}
.jpm-catalog-count{font-size:.76rem;text-transform:none;font-weight:500}
.jpm-load-more{font-size:.85rem;padding:14px 28px}
.jpm-catalog-empty,.jpm-empty-stock{border-radius:var(--radius-card)}
.jpm-catalog-empty h2,.jpm-empty-stock h2{font-size:2.4rem;text-transform:none}
.jpm-breadcrumbs{font-size:.72rem;text-transform:none;font-weight:500;padding:10px 0 20px}
.jpm-product{background:transparent}
.jpm-product-nav{width:var(--shell);margin:0 auto;background:#fff;color:var(--ink);border:1px solid #e5e5e5;border-radius:999px}
.jpm-product-nav .jpm-shell{width:100%;padding:6px 18px}
.jpm-product-nav a{color:#575757;font-size:.75rem;text-transform:none;letter-spacing:0;font-weight:600}
.jpm-product-nav a:last-child{background:var(--ink);color:#fff;border-radius:999px;padding:8px 15px}
.jpm-product-nav strong{font-size:.84rem;text-transform:none}
.jpm-product-nav span{align-items:center}
.jpm-product-hero{padding:32px 0 64px;background:transparent}
.jpm-product-hero__grid{grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr);gap:30px;align-items:start}
.jpm-product-gallery{background:transparent;padding:0;min-width:0}
.jpm-product-gallery__main{border-radius:32px;background:radial-gradient(circle,#fff,#eeeeee);border:1px solid #e3e3e3}
.jpm-product-gallery__main::after{display:none}
.jpm-product-gallery__thumbs{gap:10px;margin-top:14px}
.jpm-product-gallery__thumbs button{border-radius:16px;border-color:#e2e2e2;padding:7px}
.jpm-product-summary{background:#fff;color:var(--ink);border:1px solid #e3e3e3;border-radius:32px;padding:32px}
.jpm-product-summary__brand{height:auto;border:1px solid #d9d9d9;border-radius:999px;color:#535353;background:#f1f1f1;padding:6px 13px;display:inline-flex;font-size:.7rem}
.jpm-product-summary__meta{margin-top:22px;color:#676767;text-transform:none;letter-spacing:0;font-size:.77rem;font-weight:500}
.jpm-product-summary h1{font-size:clamp(2.5rem,4vw,4.25rem);line-height:1.06;text-transform:none;overflow-wrap:anywhere}
.jpm-product-summary__tagline{font-size:.94rem;color:#5c5c5c}
.jpm-quick-stats{gap:9px;border:0;margin:22px 0}
.jpm-quick-stats div{border:0;border-radius:14px;background:#f4f4f4;padding:12px}
.jpm-quick-stats dt{font-size:.65rem;text-transform:none}
.jpm-quick-stats dd{font-size:.88rem;font-weight:600}
.jpm-product-price strong{font-size:1.8rem;font-weight:650;letter-spacing:-.04em}
.jpm-product-price small,.jpm-product-price span{color:#636363;text-transform:none;font-size:.7rem;font-weight:500}
.jpm-product-actions{gap:10px}
.jpm-product-actions .jpm-button{font-size:.78rem;padding-inline:15px}
.jpm-product-actions .jpm-button--dark{background:#f2f2f2;border-color:#d0d0d0;color:var(--ink)}
.jpm-price-note{font-size:.69rem;color:#6b6b6b;line-height:1.65}
.jpm-product-intro h2{font-size:clamp(2rem,3vw,3rem);text-transform:none;line-height:1.15}
.jpm-product-intro__grid{gap:40px}
.jpm-color-grid article,.jpm-feature-grid article{border-radius:var(--radius-card);overflow:hidden}
.jpm-colors{background:#efefef}
.jpm-feature-grid{gap:18px;border:0;background:transparent}
.jpm-feature-grid h3{font-size:1.7rem;text-transform:none;line-height:1.15}
.jpm-feature-grid article>div{padding:28px}
.jpm-accordions{border:0;display:grid;gap:12px}
.jpm-accordions section{border:1px solid #dfdfdf;border-radius:20px;padding:0 22px;background:#f8f8f8}
.jpm-accordions button{font-size:1.12rem;letter-spacing:-.025em;text-transform:none;font-weight:650}
.jpm-accordions dl div{background:transparent;border-color:#dfdfdf}
.jpm-product-lead{background:#e9e9e9}
.jpm-lead-form{border:1px solid #e2e2e2;border-radius:28px;padding:32px;box-shadow:0 12px 40px rgba(20,20,20,.05)}
.jpm-form-grid label>span{font-size:.74rem;text-transform:none;font-weight:600}
.jpm-lead-form input:not([type=checkbox]),.jpm-lead-form textarea{border-radius:14px;background:#f8f8f8;border-color:#dadada;padding:14px;font-size:.95rem}
.jpm-check{font-size:.75rem;line-height:1.65}
.jpm-check input{accent-color:#474747;min-width:18px;min-height:18px}
.jpm-form-note{font-size:.71rem}
.jpm-form-notice{border-radius:16px}
.jpm-brand-directory>a,.jpm-service-grid article,.jpm-contact-details article,.jpm-used-grid article,.jpm-post-grid article{border-radius:var(--radius-card);border:1px solid #e2e2e2;overflow:hidden}
.jpm-brand-directory>a{background:#fff}
.jpm-brand-directory img{filter:none}
.jpm-service-grid,.jpm-contact-details{gap:18px;background:transparent;border:0}
.jpm-contact-page__grid{gap:40px}
.jpm-contact-details{grid-template-columns:1fr}
.jpm-contact-details a,.jpm-contact-details strong{font-size:1.13rem;text-transform:none;line-height:1.3;overflow-wrap:anywhere}
.jpm-contact-details small{font-size:.7rem;text-transform:none;font-weight:600}
.jpm-contact-details span,.jpm-contact-details p{font-size:.8rem}
.jpm-contact-form h2{font-size:2.6rem;text-transform:none}
.jpm-prose h2,.jpm-prose h3,.jpm-used-grid h2,.jpm-post-grid h2{font-size:2rem;text-transform:none;line-height:1.2}
.jpm-prose h3{font-size:1.5rem}

/* A calm final invitation and compact privacy notice. */
.jpm-prefooter{width:var(--shell);margin:56px auto 24px;padding:48px 0;border-radius:var(--radius-panel);background:#eaeaea}
.jpm-prefooter>.jpm-shell{width:calc(100% - 88px)}
.jpm-prefooter__grid{grid-template-columns:1.3fr 1fr;gap:40px;align-items:center}
.jpm-prefooter h2{font-size:clamp(2rem,3.2vw,3rem)}
.jpm-prefooter__actions{justify-content:flex-end;flex-wrap:wrap;gap:10px}
.jpm-prefooter .jpm-button--acid{background:var(--ink);color:#fff}
.jpm-footer{border-radius:38px 38px 0 0;background:var(--ink);margin-top:24px;padding-top:56px}
.jpm-footer h2{font-size:.8rem;text-transform:none;letter-spacing:0;color:#d6d6d6;font-weight:600}
.jpm-footer .jpm-logo small{color:var(--acid)}
.jpm-footer__grid{gap:38px}
.jpm-footer__grid a,.jpm-footer address{font-size:.82rem}
.jpm-footer__brand p{color:#b3b3b3;font-size:.86rem}
.jpm-footer__legal{font-size:.69rem;text-transform:none;color:#bbbbbb}
.jpm-footer__legal button{text-transform:none}
.jpm-footer__legal nav{gap:14px}
.jpm-cookie{max-width:780px;border-radius:24px;padding:20px 24px;border-color:#dfdfdf;box-shadow:0 12px 48px rgba(20,20,20,.16);gap:24px;bottom:18px}
.jpm-cookie strong{font-size:.92rem;letter-spacing:-.02em}
.jpm-cookie p{font-size:.75rem;line-height:1.6}
.jpm-cookie .jpm-button{font-size:.75rem;min-height:42px;padding:10px 18px}
.jpm-cookie .jpm-button--acid{background:var(--ink);color:#fff}

@media(max-width:1180px){
  .jpm-nav .menu{gap:15px}.jpm-nav .menu a{font-size:.72rem}.jpm-header__inner{padding-inline:20px;gap:16px}
  .jpm-header__cta{padding:10px 15px;font-size:.74rem}
  .jpm-hero--soft .jpm-hero__content{padding:40px 30px}.jpm-hero--soft h1{font-size:clamp(2.8rem,4.8vw,4rem)}
  .jpm-hero--soft .jpm-hero__visual{min-height:510px}.jpm-hero--soft .jpm-button{font-size:.77rem;padding-inline:18px}
  .jpm-finder--v2 .jpm-finder__inner{grid-template-columns:1fr 1.4fr}.jpm-finder--v2 form{grid-column:1/-1}
  .jpm-catalog--v2 .jpm-model-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .jpm-route-grid{grid-template-columns:repeat(2,1fr)}.jpm-route-grid a{min-height:245px}
  .jpm-product-hero__grid{gap:22px;grid-template-columns:minmax(0,1fr) minmax(320px,.9fr)}.jpm-product-summary{padding:25px}
}
@media(max-width:820px){
  :root{--shell:calc(100% - 32px);--radius-panel:28px;--radius-card:23px}
  .jpm-header{height:70px;margin:14px auto 16px}.jpm-header__inner{padding:0 14px}.jpm-header.is-sticky{height:66px}
  .jpm-header__cta{display:block}.jpm-nav{inset:96px 16px 16px;border-radius:26px;background:#f8f8f8;color:var(--ink);padding:25px;box-shadow:0 20px 60px rgba(20,20,20,.18);gap:20px}
  .jpm-nav .menu a{padding:15px 4px;border-bottom-color:#dfdfdf;font-size:1.45rem;letter-spacing:-.04em;font-weight:600}
  .jpm-nav .jpm-header__cta{margin-top:0;padding:15px}.jpm-menu-toggle{margin-left:auto}
  .jpm-hero--soft{grid-template-columns:1fr;gap:12px}
  .jpm-hero--soft .jpm-hero__content{grid-column:1;grid-row:1;padding:40px 30px}
  .jpm-hero--soft h1{font-size:clamp(2.9rem,8vw,4.4rem)}
  .jpm-hero--soft .jpm-hero__lead{max-width:530px;font-size:.96rem;margin:20px 0 24px}
  .jpm-hero--soft .jpm-hero__visual{grid-column:1;grid-row:2;min-height:370px}.jpm-hero--soft .jpm-hero__visual>img{object-position:73% 60%}
  .jpm-hero-signature{margin-top:25px}
  .jpm-hero-proof{grid-row:3;grid-template-columns:repeat(3,1fr);padding:8px 0 0}
  .jpm-hero-proof div{padding:10px 16px;min-height:70px;gap:8px}.jpm-hero-proof div:nth-child(3){border:0}.jpm-hero-proof div:last-child{display:none}
  .jpm-hero-proof strong{font-size:1.8rem}.jpm-hero-proof span{font-size:.7rem}
  .jpm-finder--v2{margin-top:24px}.jpm-finder--v2 .jpm-finder__inner{grid-template-columns:1fr;padding:24px;gap:18px}.jpm-finder--v2 form{grid-column:auto}
  .jpm-use-links{flex-wrap:wrap;overflow:visible;padding:0}
  .jpm-section{padding:58px 0}.jpm-heading-row{grid-template-columns:1fr;gap:20px;margin-bottom:28px}.jpm-heading-row>p{justify-self:start;max-width:560px}.jpm-text-link{justify-self:start}
  .jpm-heading-row h2,.jpm-services__intro h2,.jpm-heritage h2,.jpm-specs h2,.jpm-product-lead h2{font-size:clamp(2.15rem,5.7vw,3.1rem)}
  .jpm-brand-grid--v2{grid-template-columns:repeat(2,1fr);gap:12px}.jpm-brand-grid--v2>a{min-height:148px;padding:22px}
  .jpm-routes{margin-block:32px;padding:38px 0}.jpm-routes>.jpm-shell,.jpm-heritage>.jpm-shell,.jpm-prefooter>.jpm-shell,.jpm-page-hero>.jpm-shell,.jpm-catalog-hero--v2>.jpm-shell{width:calc(100% - 48px)}
  .jpm-services__grid,.jpm-heritage__grid,.jpm-prefooter__grid{grid-template-columns:1fr;gap:30px}.jpm-services__cards{grid-template-columns:1fr 1fr}.jpm-services__cards a:first-child{grid-column:1/-1}
  .jpm-heritage{padding:36px 0;margin-bottom:32px}.jpm-heritage dl div{grid-template-columns:88px 1fr;padding:20px}
  .jpm-page-hero,.jpm-catalog-hero--v2{padding:40px 0}.jpm-page-hero h1,.jpm-catalog-hero--v2 h1{font-size:clamp(2.5rem,7vw,3.5rem)}
  .jpm-catalog-layout{display:block}.jpm-filter-panel{inset:12px 12px 12px auto;width:min(360px,calc(100vw - 24px));border-radius:26px;padding:26px;transform:translateX(calc(100% + 24px));visibility:hidden;z-index:100}
  .jpm-catalog-top{grid-template-columns:minmax(0,1fr) auto}
  .jpm-filter-panel.is-open{transform:none;visibility:visible}.jpm-filter-toggle{background:var(--ink);color:#fff}
  .jpm-product-hero__grid{display:grid;grid-template-columns:1fr;gap:22px}.jpm-product-summary{order:0}.jpm-product-gallery{order:0}.jpm-product-summary h1{font-size:clamp(2.5rem,7vw,3.5rem)}
  .jpm-product-nav .jpm-shell{overflow:visible}.jpm-product-nav span{width:100%;justify-content:space-between}
  .jpm-product-intro__grid,.jpm-specs__grid,.jpm-product-lead__grid,.jpm-contact-page__grid{grid-template-columns:1fr;gap:30px}
  .jpm-product-intro h2{font-size:2.1rem}.jpm-contact-details{grid-template-columns:1fr 1fr}
  .jpm-prefooter{padding:35px 0;margin-block:32px 20px}.jpm-prefooter__actions{justify-content:flex-start}
  .jpm-footer{border-radius:28px 28px 0 0}.jpm-cookie{max-width:520px;grid-template-columns:1fr;gap:14px;padding:20px}.jpm-cookie__actions{display:flex;justify-content:flex-end}
}
@media(max-width:540px){
  :root{--shell:calc(100% - 24px)}
  .jpm-logo span{display:grid}.jpm-header{margin-block:12px}.jpm-header .jpm-logo img{width:40px;height:40px}
  .jpm-hero--soft .jpm-hero__content{padding:34px 24px}.jpm-hero--soft .jpm-eyebrow{font-size:.63rem;margin-bottom:22px}
  .jpm-hero--soft h1{font-size:clamp(2.6rem,10.6vw,3.5rem)}
  .jpm-hero--soft .jpm-hero__lead{font-size:.89rem}
  .jpm-hero--soft .jpm-hero__actions{display:flex;width:100%;flex-wrap:wrap;gap:9px}.jpm-hero--soft .jpm-button{width:auto;flex:1;white-space:nowrap;font-size:.75rem;padding-inline:13px;min-height:47px}
  .jpm-hero-signature{font-size:.66rem;line-height:1.5}.jpm-hero-signature>span{flex:none}
  .jpm-hero--soft .jpm-hero__visual{min-height:310px}.jpm-hero-caption{left:22px;right:22px;bottom:23px}.jpm-hero-caption strong{font-size:1.08rem}.jpm-hero-caption>span{font-size:.69rem}.jpm-hero-caption a{width:43px;height:43px}
  .jpm-hero-proof div{display:grid;justify-items:center;gap:4px;padding:8px}.jpm-hero-proof span{font-size:.69rem}
  .jpm-finder--v2 .jpm-finder__inner{padding:22px}.jpm-finder--v2 form{padding-left:13px}.jpm-finder--v2 form button{padding-inline:12px}.jpm-finder input{font-size:.75rem}
  .jpm-brand-grid--v2>a{padding:18px;min-height:142px}.jpm-brand-grid--v2>a::before{top:20px;left:19px}.jpm-brand-grid--v2 strong{font-size:1.15rem}.jpm-brand-grid--v2>a>span:last-child{font-size:.69rem}
  .jpm-model-grid,.jpm-catalog--v2 .jpm-model-grid{grid-template-columns:1fr;gap:20px}
  .jpm-model-card__body,.jpm-catalog--v2 .jpm-model-card__body{padding:18px 15px 15px}.jpm-model-card footer{display:flex}.jpm-model-card footer a{font-size:.75rem}
  .jpm-model-card__facts span:nth-child(n+2){display:grid}
  .jpm-route-grid,.jpm-services__cards,.jpm-contact-details,.jpm-service-grid{grid-template-columns:1fr}.jpm-route-grid a{min-height:245px}.jpm-route-grid strong{font-size:1.85rem}.jpm-services__cards a:first-child{grid-column:auto}
  .jpm-routes>.jpm-shell,.jpm-heritage>.jpm-shell,.jpm-prefooter>.jpm-shell,.jpm-page-hero>.jpm-shell,.jpm-catalog-hero--v2>.jpm-shell{width:calc(100% - 40px)}
  .jpm-catalog-top{grid-template-columns:1fr}.jpm-sort{grid-column:auto}.jpm-catalog-top input{font-size:.88rem}.jpm-catalog-hero--v2 h1{font-size:2.5rem}.jpm-catalog-hero--v2 p:last-child{font-size:.88rem}
  .jpm-product-summary{padding:25px 22px}.jpm-product-gallery__main{border-radius:25px}.jpm-product-gallery__thumbs{grid-template-columns:repeat(3,1fr)}
  .jpm-product-actions{grid-template-columns:1fr 1fr}.jpm-product-actions .jpm-button{padding-inline:12px;font-size:.73rem}
  .jpm-lead-form{padding:24px 20px;border-radius:23px}.jpm-lead-form input:not([type=checkbox]),.jpm-lead-form textarea{font-size:16px}
  .jpm-prose{padding-top:42px;padding-bottom:58px}.jpm-prefooter__actions{display:flex;flex-wrap:wrap}.jpm-prefooter__actions .jpm-button{width:100%}
  .jpm-footer__grid{gap:28px}.jpm-footer__legal{margin-top:36px;font-size:.69rem}.jpm-footer__legal nav{gap:8px 15px}.jpm-footer__legal a,.jpm-footer__legal button{padding-block:5px}
  .jpm-cookie{left:12px;right:12px;bottom:12px;border-radius:22px;padding:18px}.jpm-cookie__actions{display:flex;gap:8px}.jpm-cookie .jpm-button{width:auto;flex:1;font-size:.75rem}.jpm-cookie p{font-size:.72rem}
}
