/* JPM visual proposal — inspired by its communication, not an official brand palette.
 * Shared identity tokens. Manufacturer logos and model photography keep their colours.
 */
:root {
  --paper: #faf8f3;
  --paper-2: #efeee8;
  --ink: #202725;
  --muted: #53615d;
  --line: #d9ded7;
  --acid: #00796b;
  --acid-dark: #005e53;
  --jpm-mint: #82e1ca;
  --jpm-pale: #e5f0e9;
}
html, body { background: var(--paper); color: var(--ink); }
h1 em, h2 em, .jpm-heading-row h2 em { color: var(--acid); }
.jpm-eyebrow { color: var(--acid-dark); font-size: .875rem; letter-spacing: .075em; }
.jpm-button--acid, .jpm-product-actions .jpm-button--acid, .jpm-prefooter .jpm-button--acid,
.jpm-navigation__cta { background: var(--acid); color: #fff; }
.jpm-button--acid:hover, .jpm-product-actions .jpm-button--acid:hover, .jpm-prefooter .jpm-button--acid:hover,
.jpm-navigation__cta:hover { background: var(--acid-dark); color: #fff; }
.jpm-navigation__cta > span { background: #ffffff24; }
.jpm-button--dark { background: var(--ink); color: #fff; }
.jpm-text-link:hover { color: var(--acid-dark); border-color: var(--acid); }
:focus-visible { outline: 3px solid var(--acid); outline-offset: 4px; box-shadow: 0 0 0 2px var(--paper); }
.jpm-utility, .jpm-footer { background: var(--ink); }
.jpm-site-header { background: var(--paper); }
.jpm-navigation .menu { background: #f0f0e9; border-color: var(--line); }
.jpm-navigation .menu a:hover, .jpm-navigation .menu a[aria-current=page] {
  background: #fff; color: var(--acid-dark);
}
.jpm-starting-points > a { background: var(--jpm-pale); border-color: #d1e0d6; }
.jpm-starting-points > a:hover { border-color: var(--acid); background: #fff; }
.jpm-heading-row > p, .jpm-section-aside > p, .jpm-selection__note { color: var(--muted); }
.jpm-selection { background: var(--jpm-pale); }
.jpm-model-card { border-color: var(--line); }
.jpm-model-card__media { background: #f5f5f0; }
.jpm-model-card footer a { background: var(--ink); }
.jpm-model-card footer a:hover { background: var(--acid-dark); }
.jpm-care, .jpm-page-hero, .jpm-catalog-hero--v2, .jpm-product-summary {
  background: var(--ink);
}
.jpm-care h2 em, .jpm-care__links small,
.jpm-page-hero h1 em, .jpm-catalog-hero--v2 h1 em,
.jpm-page-hero .jpm-eyebrow, .jpm-catalog-hero--v2 .jpm-eyebrow {
  color: var(--jpm-mint);
}
.jpm-care .jpm-eyebrow { color: var(--jpm-mint); }
.jpm-visit__details, .jpm-prefooter, .jpm-colors, .jpm-product-lead { background: var(--jpm-pale); }
.jpm-features { background: var(--ink); }
.jpm-feature-list__item, .jpm-feature-grid article { background: #2c3833; }
.jpm-features .jpm-heading-row h2 em, .jpm-feature-grid article > div > span { color: var(--jpm-mint); }
.jpm-feature-list__number { color: var(--jpm-mint); border-color: #82e1ca60; }
.jpm-care__links > a:hover > span, .jpm-load-more:hover { background: var(--acid); border-color: var(--acid); }
.jpm-about-strip dt > span, .jpm-brand-directory > a > span, .jpm-prose a { color: var(--acid-dark); }
.jpm-service-grid > article > span { background: var(--jpm-pale); color: var(--acid-dark); }
.jpm-product-gallery__thumbs button[aria-current=true] { border-color: var(--acid); }
.jpm-filter-toggle span { color: var(--acid-dark); }
.jpm-check input { accent-color: var(--acid); }
.jpm-footer .jpm-logo small, .jpm-footer__grid a:hover { color: var(--jpm-mint); }
.jpm-quickfind label > span, .jpm-starting-points > a,
.jpm-brandline h2, .jpm-brandline__heading > a,
.jpm-filter-panel label > span, .jpm-catalog-top label > span,
.jpm-product-nav a, .jpm-model-card__facts span { font-size: .875rem; }
.jpm-campaign--sunlit, .jpm-campaign--sunlit .jpm-campaign__bottom { background: var(--paper); }
.jpm-campaign--sunlit:after { background: linear-gradient(90deg,#faf8f3 25%,#faf8f3f2 34%,#faf8f3b3 43%,#faf8f300 59%); }
.jpm-campaign--sunlit h1 em { color: var(--acid); }
.jpm-campaign--sunlit .jpm-campaign__eyebrow > span { background: var(--acid); }
.jpm-campaign__help { gap: 14px; }

/* A stronger editorial rhythm: graphite, open-road light and petrol accents. */
.jpm-site-header { background: #182522; color: #fff; border-bottom: 1px solid #ffffff18; }
.jpm-site-header__inner { min-height: 86px; }
.jpm-site-header .jpm-logo b { color: #fff; }
.jpm-site-header .jpm-logo small { color: var(--jpm-mint); font-size: .75rem; letter-spacing: .08em; }
.jpm-site-header .jpm-logo img { border-radius: 50%; }
.jpm-utility { background: #101b18; }
.jpm-navigation .menu { background: #ffffff06; border-color: #ffffff18; }
.jpm-navigation .menu a { color: #e3ece7; }
.jpm-navigation .menu a:hover, .jpm-navigation .menu a[aria-current=page] { background: #ffffff12; color: var(--jpm-mint); box-shadow: none; }
.jpm-site-header .jpm-navigation__cta { background: var(--jpm-mint); color: #142b24; }
.jpm-site-header .jpm-navigation__cta > span { background: #142b2412; color: #142b24; }
.jpm-site-header .jpm-navigation__cta:hover { background: #b0f1df; }
.jpm-site-header :focus-visible { outline-color: var(--jpm-mint); box-shadow: 0 0 0 2px #182522; }
.jpm-menu-button { background: #ffffff0a; border-color: #ffffff38; color: #fff; }
.jpm-campaign--signature { margin: 18px 20px 0; background: #182522; border-radius: 32px; }
.jpm-campaign--signature .jpm-campaign__photo { left: 32%; width: 68%; object-position: 68% center; }
.jpm-campaign--signature:after { background: linear-gradient(90deg,#182522 0%,#182522 32%,#182522eb 41%,#18252266 56%,#18252200 72%),linear-gradient(0deg,#182522e6,transparent 28%); }
.jpm-campaign--signature .jpm-campaign__inner { min-height: 660px; padding-block: 68px 42px; gap: 52px; }
.jpm-campaign--signature .jpm-campaign__copy { max-width: 630px; }
.jpm-campaign--signature .jpm-campaign__eyebrow { color: #ddf2e9; font-size: .875rem; letter-spacing: .06em; }
.jpm-campaign--signature .jpm-campaign__eyebrow > span { background: var(--jpm-mint); }
.jpm-campaign--signature h1 { font-size: clamp(4.4rem,7.2vw,7rem); font-weight: 850; line-height: 1; letter-spacing: -.06em; text-transform: uppercase; }
.jpm-campaign--signature h1 > span { display: block; font-size: .61em; line-height: 1.18; letter-spacing: -.045em; margin-bottom: 5px; }
.jpm-campaign--signature h1 em { display: block; font-style: normal; font-weight: 850; color: var(--jpm-mint); letter-spacing: -.06em; }
.jpm-campaign--signature .jpm-campaign__copy > p:not(.jpm-campaign__eyebrow) { max-width: 390px; color: #e4ece7; font-size: 1.0625rem; }
.jpm-campaign--signature .jpm-campaign__actions { gap: 16px 24px; max-width: 600px; }
.jpm-campaign--signature .jpm-button--acid { background: var(--jpm-mint); color: #142b24; }
.jpm-campaign--signature .jpm-button--acid:hover { background: #b0f1df; }
.jpm-campaign--signature .jpm-campaign__help { color: #fff; border-color: #a6c1b7; }
.jpm-campaign--signature .jpm-campaign__bottom > p > span { color: #d2e0d9; font-size: .875rem; }
.jpm-campaign--signature .jpm-campaign__model { background: #182522e8; border-color: #ffffff40; backdrop-filter: none; }
.jpm-campaign--signature .jpm-campaign__model b { background: var(--jpm-mint); color: #142b24; }
.jpm-campaign--signature :focus-visible { outline-color: #fff; box-shadow: 0 0 0 2px #182522; }
.home .jpm-discovery { margin-top: 24px; max-width: none; }
.home .jpm-quickfind { border-radius: 24px; box-shadow: 0 12px 38px #1825220a; }
.home .jpm-quickfind .jpm-button { background: var(--acid); }
.home .jpm-quickfind .jpm-button:hover { background: var(--acid-dark); }
.home .jpm-heading-row h2 { font-size: clamp(2.5rem,4.5vw,4.4rem); line-height: 1.03; text-transform: uppercase; font-weight: 800; letter-spacing: -.055em; }
.home .jpm-heading-row h2 em { font-weight: 800; }
.home .jpm-selection { background: #182522; padding-block: 76px; color: #fff; border-radius: 36px; }
.home .jpm-selection .jpm-heading-row h2 { color: #fff; }
.home .jpm-selection .jpm-heading-row h2 em,
.home .jpm-selection .jpm-eyebrow { color: var(--jpm-mint); }
.home .jpm-selection .jpm-section-aside > p,
.home .jpm-selection .jpm-selection__note { color: #d2e0d9; }
.home .jpm-selection .jpm-section-aside .jpm-text-link { color: #fff; border-color: #a2b9ae; }
.home .jpm-selection .jpm-section-aside .jpm-text-link:hover { color: var(--jpm-mint); border-color: var(--jpm-mint); }
.home .jpm-selection .jpm-model-card { background: var(--paper); color: var(--ink); border-color: transparent; }
.home .jpm-selection .jpm-model-card h3 { color: var(--ink); }
.home .jpm-selection .jpm-model-card__media { background: #fff; }
.home #destaques { scroll-margin-top: 120px; }
.home .jpm-featured-grid { list-style: none; margin: 0; padding: 0; }
.home .jpm-featured-item { min-width: 0; display: flex; flex-direction: column; }
.home .jpm-featured-item > .jpm-model-card { flex: 1; }
.home #destaques .jpm-selection__note { font-size: .875rem; line-height: 1.6; }
.jpm-prefooter { margin-top: 48px; }
/* Visible field boundaries on white and pale service/product panels (>3:1). */
.jpm-lead-form input:not([type="checkbox"]):not([type="radio"]),
.jpm-lead-form textarea, .jpm-lead-form select,
.jpm-catalog-search input, .jpm-quickfind select, .jpm-sort select {
  border: 1px solid #72847c;
  background-color: #fff;
}
.jpm-lead-form input:focus-visible, .jpm-lead-form textarea:focus-visible,
.jpm-lead-form select:focus-visible { outline: 3px solid #00796b; outline-offset: 3px; }
.jpm-model-card__facts small { color: #53615d; font-size: .875rem; }
.jpm-model-card .jpm-model-card__image-note { font-size: .875rem; line-height: 1.5; color: #53615d; text-transform: none; letter-spacing: normal; }
.jpm-footer__legal, .jpm-footer__legal a, .jpm-footer__legal button { font-size: .875rem; line-height: 1.6; }
.jpm-footer__legal a, .jpm-footer__legal button { display: inline-flex; align-items: center; min-height: 44px; }
.home .jpm-world > div { min-width: 0; }
.home .jpm-world h3 { overflow-wrap: anywhere; hyphens: auto; }
@media (max-width: 360px) { .home .jpm-worlds .jpm-world h3 { font-size: 1.8rem; line-height: 1.12; } }
.jpm-model-card { transition: transform .2s, box-shadow .2s; }
.jpm-model-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px #142b2420; }
.home .jpm-world { min-height: 440px; }
.home .jpm-world h3 { text-transform: uppercase; font-weight: 800; font-size: clamp(2rem,3vw,3rem); }
.home .jpm-care { background: #005e53; padding-block: 76px; }
.home .jpm-care h2 { text-transform: uppercase; font-weight: 800; font-size: clamp(2.8rem,4.4vw,4.5rem); }
.home .jpm-care h2 em { font-weight: 800; color: var(--jpm-mint); }
.home .jpm-care .jpm-eyebrow, .home .jpm-care__links p,
.home .jpm-care__intro > p:not(.jpm-eyebrow) { color: #e0f4eb; }
.home .jpm-care__links > a { background: #ffffff08; border-color: #ffffff35; }
.home .jpm-care__links > a:hover { background: #ffffff15; }
.home .jpm-care .jpm-button--acid { background: #fff; color: var(--acid-dark); }
.home .jpm-care .jpm-button--acid:hover { background: var(--jpm-pale); }
.home .jpm-visit h2 { text-transform: uppercase; font-weight: 800; }
@media (prefers-reduced-motion: reduce) {
  .jpm-model-card { transition: none; }
  .jpm-model-card:hover { transform: none; }
}
@media (max-width: 1100px) {
  .jpm-campaign--signature h1 { font-size: clamp(4rem,7.6vw,5.8rem); }
  .jpm-campaign--signature .jpm-campaign__inner { min-height: 620px; padding-block: 50px 36px; }
  .jpm-campaign--signature .jpm-campaign__actions { max-width: 360px; }
}
@media (max-width: 820px) {
  .jpm-campaign--signature { display: flex; flex-direction: column; margin: 12px 12px 0; border-radius: 26px; }
  .jpm-campaign--signature:after { display: none; }
  .jpm-campaign--signature .jpm-campaign__inner { display: contents; }
  .jpm-campaign--signature .jpm-campaign__copy { order: 1; padding: 38px 28px 32px; max-width: none; }
  .jpm-campaign--signature h1 { font-size: clamp(3.8rem,10vw,5.8rem); }
  .jpm-campaign--signature .jpm-campaign__copy > p:not(.jpm-campaign__eyebrow) { max-width: 530px; }
  .jpm-campaign--signature .jpm-campaign__actions { max-width: none; }
  .jpm-campaign--signature .jpm-campaign__photo { order: 2; position: relative; inset: auto; width: 100%; height: auto; aspect-ratio: 3/2; object-fit: cover; z-index: auto; }
  .jpm-campaign--signature .jpm-campaign__bottom { order: 3; padding: 20px 26px; background: #182522; }
  .home .jpm-discovery { margin-top: 20px; }
}
@media (max-width: 540px) {
  .jpm-campaign--signature { margin-inline: 8px; border-radius: 24px; }
  .jpm-campaign--signature .jpm-campaign__copy { padding: 30px 22px; }
  .jpm-campaign--signature h1 { font-size: clamp(2.7rem,11.5vw,4.1rem); }
  .jpm-campaign--signature .jpm-campaign__eyebrow { font-size: .8125rem; gap: 8px; letter-spacing: .02em; margin-bottom: 25px; }
  .jpm-campaign--signature .jpm-campaign__copy > p:not(.jpm-campaign__eyebrow) { font-size: 1rem; }
  .jpm-campaign--signature .jpm-campaign__actions { gap: 12px; }
  .jpm-campaign--signature .jpm-campaign__actions .jpm-button { padding-inline: 19px; }
  .jpm-campaign--signature .jpm-campaign__bottom { padding: 14px; }
  .jpm-campaign--signature .jpm-campaign__model { margin: 0; border-radius: 18px; }
  .home .jpm-heading-row h2 { font-size: clamp(2rem,8.5vw,2.8rem); }
  .home .jpm-selection { padding-block: 38px; border-radius: 26px; }
  .home .jpm-world { min-height: 360px; }
  .home .jpm-world h3 { font-size: 2.3rem; }
  .home .jpm-care { padding-block: 44px; }
  .home .jpm-care h2 { font-size: clamp(2.1rem,9vw,3rem); }
}

/* Campaign photograph: protect the rider's silhouette and keep copy to its left. */
.jpm-campaign--duke .jpm-campaign__photo { left: 28%; width: 72%; object-position: 52% center; }
.jpm-campaign--duke:after { background: linear-gradient(90deg,#182522 0%,#182522 25%,#182522d9 32%,#18252233 42%,transparent 50%),linear-gradient(0deg,#182522e6,transparent 24%); }
.jpm-campaign--duke .jpm-campaign__inner { min-height: 640px; padding-block: 54px 32px; gap: 36px; }
.jpm-campaign--duke .jpm-campaign__copy { max-width: 36%; }
.jpm-campaign--duke h1 { font-size: clamp(6rem,10vw,9.5rem); line-height: .94; }
.jpm-campaign--duke h1 > span { font-size: .25em; letter-spacing: .02em; margin-bottom: 8px; }
.jpm-campaign--duke h1 > .jpm-campaign__variant { font-size: .25em; letter-spacing: -.025em; margin-top: 12px; }
.jpm-campaign--duke .jpm-campaign__copy > p:not(.jpm-campaign__eyebrow) { max-width: 340px; }
.jpm-campaign--duke .jpm-campaign__actions { max-width: 360px; gap: 10px 22px; }
.jpm-campaign--duke .jpm-campaign__model { max-width: 390px; gap: 20px; }
.jpm-campaign--duke .jpm-campaign__model small { line-height: 1.5; }
.jpm-campaign--duke .jpm-campaign__model b { flex-shrink: 0; }
@media (max-width: 980px) {
  .jpm-campaign--duke { display: flex; flex-direction: column; }
  .jpm-campaign--duke:after { display: none; }
  .jpm-campaign--duke .jpm-campaign__inner { display: contents; }
  .jpm-campaign--duke .jpm-campaign__photo { order: 1; position: relative; inset: auto; width: 100%; height: auto; aspect-ratio: 2.1; object-fit: cover; object-position: center; z-index: auto; }
  .jpm-campaign--duke .jpm-campaign__copy { order: 2; max-width: none; padding: 30px 28px 24px; }
  .jpm-campaign--duke h1 { font-size: clamp(6rem,16vw,8rem); }
  .jpm-campaign--duke .jpm-campaign__eyebrow { margin-bottom: 18px; }
  .jpm-campaign--duke .jpm-campaign__copy > p:not(.jpm-campaign__eyebrow) { max-width: 530px; margin-block: 20px; }
  .jpm-campaign--duke .jpm-campaign__actions { max-width: none; }
  .jpm-campaign--duke .jpm-campaign__bottom { order: 3; padding: 20px 28px; background: #12201c; }
}
@media (max-width: 540px) {
  .jpm-campaign--duke .jpm-campaign__photo { aspect-ratio: 1.65; }
  .jpm-campaign--duke .jpm-campaign__copy { padding: 26px 22px; }
  .jpm-campaign--duke h1 { font-size: clamp(5.5rem,24vw,7.5rem); }
  .jpm-campaign--duke .jpm-campaign__bottom { padding: 16px; }
  .jpm-campaign--duke .jpm-campaign__model { max-width: none; }
}

/* Company introduction: one clear business message, with supporting real photos. */
.jpm-house { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px,5vw,72px); align-items: center; padding-block: 72px 24px; scroll-margin-top: 120px; }
.jpm-house figure { margin: 0; }
.jpm-house__store > img { width: 100%; height: auto; border-radius: 30px; }
.jpm-house__store > figcaption { color: var(--muted); font-size: .8125rem; line-height: 1.5; padding: 12px 3px; }
.jpm-house__people { display: flex; align-items: center; gap: 20px; padding-top: 12px; }
.jpm-house__people > img { width: 158px; height: auto; border-radius: 18px; }
.jpm-house__people figcaption { display: grid; gap: 8px; font-size: .875rem; line-height: 1.5; }
.jpm-house__people figcaption span { color: var(--muted); font-size: .8125rem; }
.jpm-house__copy { min-width: 0; }
.jpm-house h2 { margin: 0 0 22px; font-size: clamp(2.2rem,3.6vw,3.5rem); font-weight: 800; line-height: 1.08; letter-spacing: -.045em; text-transform: uppercase; }
.jpm-house h2 em { font-style: normal; }
.jpm-house__copy > p:not(.jpm-eyebrow) { margin: 0; font-size: 1rem; line-height: 1.7; color: var(--muted); max-width: 500px; }
.jpm-house__services { display: grid; margin-block: 24px; }
.jpm-house__services a { display: flex; align-items: center; gap: 16px; min-height: 58px; border-bottom: 1px solid var(--line); padding-block: 12px; font-size: 1rem; font-weight: 600; }
.jpm-house__services a:hover { color: var(--acid-dark); }
.jpm-house__services span { color: var(--acid); font-size: .8125rem; font-weight: 400; }
.jpm-house__services b { margin-left: auto; font-weight: 400; }
.jpm-house__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 16px 24px; }
.jpm-social-icon { flex: 0 0 auto; display: block; }
.jpm-utility__actions,.jpm-social-shortcuts { display: flex; align-items: center; gap: 16px; }
.jpm-social-shortcuts { gap: 4px; }
.jpm-utility .jpm-social-shortcuts a { min-width: 44px; min-height: 44px; padding: 8px 12px; border-radius: 99px; color: #d7f6eb; font-size: .875rem; }
.jpm-social-shortcuts a:hover { background: #29483b; }
.jpm-social-spotlight { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.05fr); gap: 40px; align-items: center; margin-block: 30px 20px; padding: clamp(28px,4vw,48px); border-radius: 32px; background: #00695c; color: #fff; scroll-margin-top: 120px; }
.jpm-social-spotlight .jpm-eyebrow { color: #b9f5e3; margin-bottom: 16px; font-size: .875rem; }
.jpm-social-spotlight h2 { margin: 0; color: #fff; font-size: clamp(1.9rem,3.1vw,3rem); font-weight: 800; line-height: 1.08; letter-spacing: -.04em; text-transform: none; }
.jpm-social-spotlight h2 em { color: #b9f5e3; font-style: normal; }
.jpm-social-spotlight__copy > p:last-child { max-width: 430px; margin: 20px 0 0; font-size: 1rem; line-height: 1.7; color: #effbf6; }
.jpm-social-spotlight__links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.jpm-social-card { display: flex; flex-direction: column; align-items: flex-start; gap: 22px; background: #fff; color: #182b25; border-radius: 24px; padding: 24px; min-width: 0; border: 2px solid transparent; transition: background .2s,border-color .2s; }
.jpm-social-card:hover { background: #ecfaf3; border-color: #b9f5e3; }
.jpm-social-card__icon { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 18px; background: #dff3e9; color: #005e53; }
.jpm-social-card__icon svg { width: 30px; height: 30px; }
.jpm-social-card__body { display: flex; flex-direction: column; width: 100%; min-width: 0; }
.jpm-social-card strong { font-size: 1.5rem; letter-spacing: -.03em; line-height: 1.3; }
.jpm-social-card__body > span { font-size: .875rem; margin-top: 5px; color: #53615d; overflow-wrap: anywhere; }
.jpm-social-card b { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-top: 18px; margin-top: 20px; border-top: 1px solid #d9ded7; font-size: .875rem; font-weight: 650; line-height: 1.5; }
.jpm-footer-social { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding-bottom: 32px; margin-bottom: 36px; border-bottom: 1px solid #4c5c54; }
.jpm-footer-social > div { display: grid; gap: 8px; }
.jpm-footer-social > div > span { font-size: .875rem; color: #c6dbcf; }
.jpm-footer-social strong { font-size: clamp(1.3rem,2.2vw,1.9rem); color: #fff; line-height: 1.3; letter-spacing: -.025em; }
.jpm-footer-social nav { display: flex; flex-wrap: wrap; gap: 12px; }
.jpm-footer-social nav a { display: inline-flex; align-items: center; gap: 12px; min-height: 52px; padding: 12px 20px; border-radius: 99px; background: #82e1ca; color: #142b24; font-size: 1rem; font-weight: 650; }
.jpm-footer-social nav a:hover { background: #b0f1df; }
.jpm-social-spotlight a:focus-visible,.jpm-footer-social a:focus-visible,.jpm-social-shortcuts a:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
@media (max-width: 1100px) {
  .jpm-social-shortcuts a > span { display: none; }
  .jpm-social-spotlight { grid-template-columns: 1fr; gap: 28px; }
  .jpm-social-spotlight__copy > p:last-child { max-width: 620px; }
  .jpm-social-card { flex-direction: row; align-items: flex-start; gap: 18px; }
  .jpm-social-card__icon { flex-shrink: 0; }
}
@media (max-width: 680px) {
  .jpm-utility__actions { gap: 8px; }
  .jpm-utility .jpm-social-shortcuts a { padding-inline: 10px; }
  .jpm-footer-social { align-items: flex-start; flex-direction: column; gap: 20px; }
  .jpm-social-spotlight { padding: 28px 22px; border-radius: 26px; }
  .jpm-social-spotlight__links { grid-template-columns: 1fr; }
  .jpm-social-card { padding: 22px; }
}
@media (max-width: 380px) {
  .jpm-utility > .jpm-shell { flex-wrap: wrap; justify-content: center; gap: 0 12px; padding-top: 6px; }
  .jpm-social-card { padding: 20px; gap: 12px; }
}
@media (prefers-reduced-motion: reduce) { .jpm-social-card { transition: none; } }
@media (max-width: 820px) {
  .jpm-house { grid-template-columns: 1fr; padding-top: 48px; gap: 28px; }
  .jpm-house__copy { grid-row: 1; }
  .jpm-house__photos { max-width: 640px; }
}
@media (max-width: 540px) {
  .jpm-house { padding-top: 38px; }
  .jpm-house h2 { font-size: clamp(1.9rem,8vw,2.6rem); }
  .jpm-house__store > img { border-radius: 22px; }
  .jpm-house__people { gap: 14px; }
  .jpm-house__people > img { width: 120px; }
}

/* Legacy life layout retained for existing editorial content, not the homepage. */
.jpm-life { padding-block: 84px 18px; scroll-margin-top: 130px; }
.jpm-life .jpm-heading-row { margin-bottom: 38px; align-items: end; gap: 32px; }
.jpm-life .jpm-heading-row > p { max-width: 370px; justify-self: end; margin: 0; }
.jpm-life__grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 40px; align-items: start; }
.jpm-life figure { min-width: 0; margin: 0; }
.jpm-life figure > img { width: 100%; height: auto; border-radius: 30px; }
.jpm-life__store { padding-top: 70px; }
.jpm-life figcaption { padding: 24px 4px 0; }
.jpm-life__label { color: var(--acid-dark); font-size: .875rem; line-height: 1.5; font-weight: 600; }
.jpm-life figcaption h3 { font-size: clamp(1.65rem,2.3vw,2.3rem); line-height: 1.15; margin: 12px 0; text-transform: none; letter-spacing: -.04em; }
.jpm-life figcaption p { max-width: 560px; font-size: 1rem; line-height: 1.7; color: var(--muted); margin: 0 0 14px; }
.jpm-life figcaption small { display: block; font-size: .8125rem; color: var(--muted); line-height: 1.6; margin-top: 15px; }
.jpm-life__social { margin-top: 38px; padding: 28px 32px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border-radius: 26px; background: var(--acid); color: #fff; }
.jpm-life__social h3 { margin: 0 0 6px; font-size: 1.4rem; line-height: 1.3; letter-spacing: -.025em; color: #fff; text-transform: none; }
.jpm-life__social p { margin: 0; font-size: 1rem; line-height: 1.6; color: #fff; }
.jpm-life__social nav { display: flex; flex-wrap: wrap; gap: 10px; }
.jpm-life__social a { display: inline-flex; align-items: center; justify-content: space-between; gap: 25px; min-height: 48px; padding: 12px 20px; background: #fff; color: var(--acid-dark); border-radius: 999px; font-size: .875rem; font-weight: 650; }
.jpm-life__social a:hover { background: var(--jpm-pale); }
.jpm-life__social a:focus-visible { outline-color: #fff; box-shadow: 0 0 0 2px var(--acid-dark); }
@media (max-width: 1100px) {
  .jpm-navigation { background: #182522; color: #fff; border-color: #ffffff26; }
  .jpm-navigation .menu { background: transparent; }
  .jpm-navigation__intro, .jpm-navigation__contact { color: #c9dcd3; border-color: #ffffff24; }
  .jpm-navigation__intro strong, .jpm-navigation__contact > a { color: #fff; }
  .jpm-life__grid { gap: 28px; }
  .jpm-life__social { flex-wrap: wrap; }
}
@media (max-width: 820px) {
  .jpm-life { padding-top: 58px; }
  .jpm-life .jpm-heading-row { grid-template-columns: 1fr; gap: 20px; }
  .jpm-life .jpm-heading-row > p { justify-self: start; max-width: 560px; }
  .jpm-life__grid { grid-template-columns: 1fr; gap: 38px; }
  .jpm-life__store { padding-top: 0; }
  .jpm-life__social { padding: 26px; }
}
@media (max-width: 540px) {
  .jpm-life { padding-block: 42px 4px; }
  .jpm-life .jpm-heading-row { margin-bottom: 26px; }
  .jpm-life figure > img { border-radius: 22px; }
  .jpm-life figcaption { padding-top: 20px; }
  .jpm-life__social { margin-top: 30px; padding: 24px; border-radius: 22px; }
  .jpm-life__social nav { width: 100%; }
  .jpm-life__social a { flex: 1; gap: 12px; padding-inline: 16px; }
}
