.main-visual {
    position: relative;
    width: 100%;
    overflow: hidden;
    max-width: 1080px;
    margin: 3% auto;
    border-radius: 20px;
}

.fluentform .ff-el-help-message｛
color:#fff!important;
｝

.ff-el-help-message{
	color:#fff!important;
}

.breadcrumb {
    color: #fff;
}

.page-top-floating {
    background-color: #000;
}

.pt-cv-title a {
  font-weight: 100;
    border-bottom: none;
    font-size: 13px;
    font-family: 'Noto Sans JP';
}

.pt-cv-view .pt-cv-title {
    margin-bottom: 0px;
}


h1.article-title {
	color:#ddd;
	font-size:2.3em;
	font-weight:400;
}

.fluentform button[type="submit"],
.fluentform input[type="submit"],
.fluentform .ff-btn-submit {
    background-color: #0073aa !important;
    color: #ffffff !important;
    border: 1px solid #0073aa !important;
    padding: 12px 24px !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    border-radius: 4px !important;
    cursor: pointer !important;
    display: inline-block !important;
    line-height: 1.4 !important;
    text-align: center !important;
    transition: all 0.3s ease !important;
}

.fluentform button[type="submit"] span,
.fluentform .ff-btn-submit span,
.fluentform button[type="submit"] *,
.fluentform .ff-btn-submit * {
    color: #ffffff !important;
}

.fluentform button[type="submit"]:hover,
.fluentform input[type="submit"]:hover,
.fluentform .ff-btn-submit:hover {
    background-color: #005177 !important;
    color: #ffffff !important;
    border-color: #005177 !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 8px rgba(0,0,0,0.2) !important;
}

.fluentform button[type="submit"]:focus,
.fluentform input[type="submit"]:focus,
.fluentform .ff-btn-submit:focus {
    outline: 2px solid #0073aa !important;
    outline-offset: 2px !important;
    background-color: #0073aa !important;
    color: #ffffff !important;
}

.post-content .fluentform button[type="submit"],
.entry-content .fluentform button[type="submit"],
.site-content .fluentform button[type="submit"] {
    background: #0073aa !important;
    background-color: #0073aa !important;
    color: #ffffff !important;
    border: 1px solid #0073aa !important;
}

body .fluentform button[type="submit"],
html body .fluentform input[type="submit"] {
    background-color: #0073aa !important;
    color: #ffffff !important;
    border-color: #0073aa !important;
}

@media (max-width: 768px) {
    .fluentform button[type="submit"],
    .fluentform input[type="submit"],
    .fluentform .ff-btn-submit {
        width: 100% !important;
        padding: 14px 20px !important;
        font-size: 16px !important;
    }
}

/* === Product grid (WPエディタで壊れない版) === */
.sp-grid .epb-column__item figure{ margin:0; }

/* 正方形サムネの枠＋中央寄せ（切らない） */
.sp-thumb{
  width:100%;
  aspect-ratio:1/1;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.sp-thumb img{
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  display:block;
}

/* 端数の行でも中央揃えに */
.sp-grid .epb-columns__inner{
  justify-content:center;
}


.pt-cv-remain-wrapper {
    background-color: #2c2c2c;
    padding: 20px !important;
    margin: 0 !important;
}

.pt-cv-blockgrid.grid1.layout2 .pt-cv-content-item {
    box-shadow: none;
    border: #2c2c2c 10px solid;
}

a._self {
    font-family: 'Noto Serif JP';
    font-weight: 400 !important;
}

.pt-cv-content-item.pt-cv-1-col {
    background: #2c2c2c;
}
/* sp-cat-card: トップの製品カテゴリ（案10・2026-10-10） */
.sp-cat-card{background:#1d1d1d;border:1px solid #2c2c2c;border-radius:10px;overflow:hidden;padding-bottom:14px;transition:border-color .25s}
.sp-cat-card:hover{border-color:#777}
.sp-cat-card .wp-block-image{margin:0}
.sp-cat-card .wp-block-image img{display:block;width:100%;height:auto}
.sp-cat-card p{margin:14px 8px 0}
/* /sp-cat-card */

/* sp-store-btn: ヘッダーの「公式オンラインストアを見る」をボタンに（2026-10-10） */
.header-menu .sp-store-btn>a{height:auto!important;align-self:center;border:1px solid rgba(255,255,255,.85);border-radius:999px;padding:10px 20px!important;margin-left:12px;line-height:1!important;transition:background .2s,border-color .2s}
.header-menu .sp-store-btn>a:hover{background:rgba(255,255,255,.12);border-color:#fff}
.sp-store-btn>a span::after{display:none!important}
.drawer-menu__nav .sp-store-btn>a{display:inline-block;width:fit-content!important;border:1px solid currentColor;border-radius:999px;padding:8px 16px;margin-top:4px}
/* /sp-store-btn */

/* sp-media: トップの「目指すこと」の3枚・メディア掲載・紹介動画のカード（2026-10-10） */
.sp-point-card{background:#1d1d1d;border:1px solid #2c2c2c;border-radius:10px;padding:22px 24px}
.sp-point-card p{margin:0}
.sp-point-card p+p{margin-top:10px;font-size:14px;line-height:1.7;color:#ccc}
.sp-media-card{background:#1d1d1d;border:1px solid #2c2c2c;border-radius:10px;overflow:hidden;padding-bottom:18px;transition:border-color .25s}
.sp-media-card:hover{border-color:#777}
.sp-media-card .wp-block-image{margin:0}
.sp-media-card .wp-block-image img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;object-position:top}
.sp-media-card.sp-video .wp-block-image img{aspect-ratio:16/9;object-position:center}
.sp-media-card p{margin:10px 16px 0;font-size:13px;line-height:1.7;color:#bbb}
.sp-media-card p.sp-src{margin-top:14px;font-size:12px;color:#999}
.sp-media-card p.sp-title{font-size:14px;line-height:1.6}
.sp-media-card p.sp-title a{color:#fff;text-decoration:none}
.sp-media-card p.sp-title a:hover{text-decoration:underline}
/* /sp-media */

/* sp-cat-finder: トップの「製品カテゴリ」見出しの右の製品セレクター入口（2026-10-10） */
.sp-cat-head{gap:12px 24px}
.sp-cat-head h2{margin-bottom:0}
.sp-cat-finder{margin:0}
.sp-cat-finder a{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;border:1px solid rgba(255,255,255,.7);border-radius:999px;color:#fff;text-decoration:none;font-size:14px;letter-spacing:.06em;line-height:1.3;transition:background .2s,border-color .2s}
.sp-cat-finder a::before{content:"";width:15px;height:15px;flex:none;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='M15.5 15.5L21 21'/%3E%3C/svg%3E")}
.sp-cat-finder a:hover{background:rgba(255,255,255,.1);border-color:#fff}
/* /sp-cat-finder */

/* sp-anim2026 */
/* The escaped slash keeps the staging-only selector free of a literal host path. */
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .home :is(.animated, .hidden-animated) {
  visibility: visible !important; /* beats Otter's inline hide rule when JS is unavailable */
  opacity: 1;
  animation: none;
}
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .epb-animation-fadeInUp {
  opacity: 1;
  transform: none;
  animation: none;
}
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .slick-slide.slick-current .header-image-slider__item,
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .slick-slide.is-active .header-image-slider__item { animation: none; }
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .main-visual-slider__inner.is_opacity { opacity: 1; }
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .js-main-visual-inner.animation { animation: none; }
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) body.is-header-animation-fade.header-animation .l-header { animation: none; }

/* Drawer and hamburger timing. */
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .drawer-menu { transition: transform 300ms ease-out; }
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .drawer-overlay { animation-duration: 180ms; }
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .hamburger-menu-trigger span,
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .hamburger-close-line span { transition-duration: 180ms; }

/* Hero controls. */
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .main-visual .slick-prev,
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .main-visual .slick-next {
  display: block; /* G specificity beats the theme's hover-only display rule */
  opacity: 1;
  visibility: visible;
  z-index: 3;
}
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .main-visual .slick-prev { left: 16px; }
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .main-visual .slick-next { right: 16px; }
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) :is(.main-visual .slick-prev, .main-visual .slick-next, .sp-hero-toggle):focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .sp-hero-toggle {
  position: absolute;
  right: 16px;
  bottom: 16px;
  z-index: 4;
  padding: 7px 12px;
  border: 1px solid rgba(255,255,255,.75);
  border-radius: 3px;
  background: rgba(0,0,0,.62);
  color: #fff;
  font: inherit;
  line-height: 1.3;
  cursor: pointer;
}

/* One-shot reveal states. */
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .sp-r { transform: none; }
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .sp-r--fade,
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .sp-r--card { opacity: 0; }
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .sp-r--clip { clip-path: inset(100% 0 0 0); }
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .sp-r--mask { clip-path: inset(0 100% 0 0); }
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .sp-r:not(.sp-in) { transition: none; } /* hide instantly; beats theme transition:all on cards */
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .sp-r--fade.sp-in { opacity: 1; transition: opacity 600ms cubic-bezier(.2,.7,.2,1); }
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .sp-r--card.sp-in { opacity: 1; transition: opacity 450ms cubic-bezier(.2,.7,.2,1); }
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .sp-r--clip.sp-in { clip-path: inset(0 0 0 0); transition: clip-path 700ms cubic-bezier(.2,.7,.2,1); }
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .sp-r--mask.sp-in { clip-path: inset(0 0 0 0); transition: clip-path 850ms cubic-bezier(.2,.7,.2,1); }
:is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .sp-r.sp-in.sp-now { transition: none; }

/* Reduced motion and print always leave content available. */
@media (prefers-reduced-motion: reduce) {
  :is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .drawer-menu,
  :is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .drawer-overlay,
  :is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .hamburger-menu-trigger span,
  :is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .hamburger-close-line span { transition-duration: 0s; animation: none; }
  :is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .main-visual .slick-prev,
  :is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .main-visual .slick-next,
  :is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .sp-hero-toggle { transition-duration: 0s; }
  :is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .sp-r,
  :is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .sp-r.sp-in { opacity: 1; clip-path: inset(0 0 0 0); transition-duration: 0s; animation: none; }
  :is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .swiper-wrapper { transition-duration: 0s !important; } /* beats Swiper's inline duration */
  :is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .main-visual .slick-slide { transition-duration: 0s !important; } /* beats slick's inline transition */
}
@media print {
  :is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .sp-r,
  :is(html.sp-anim, html:has(> head > link[rel="https://api.w.org/"][href])) .sp-r.sp-in { opacity: 1; clip-path: inset(0 0 0 0); transition: none; animation: none; }
}
/* /sp-anim2026 */

/* sp-quote2026 */
/* Press quotes on pages: the theme gives blockquotes a light background while page text is light; use a dark card instead. */
body.page .article-body .wp-block-quote { background: rgba(255,255,255,.06); color: #e6e6e6; border-left: 3px solid #8a8a8a; padding: 1.2em 1.4em; }
body.page .article-body .wp-block-quote p { color: #e6e6e6; }
body.page .article-body .wp-block-quote cite { color: #b5b5b5; }
/* /sp-quote2026 */

/* sp-pp2026 */
/* 製品ページ専用。Emanon／Gutenbergの装飾はこの領域内でのみ整える。 */
.sp-pp-page.wp-block-group {
  --sp-pp-bg: #151515;
  --sp-pp-panel: #1d1d1d;
  --sp-pp-text: #e6e6e6;
  --sp-pp-muted: #b8b8b8;
  --sp-pp-line: #333;
  /* テーマの paragraph__narrow の内幅から、記事幅へ中央を保って広げる。 */
  width: min(1180px, calc(100vw - 48px));
  max-width: none;
  margin-inline: calc((100% - min(1180px, calc(100vw - 48px))) / 2);
  display: flow-root;
  background: var(--sp-pp-bg);
  color: var(--sp-pp-text);
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 16px;
  line-height: 1.9;
  text-align: left;
  overflow: visible;
}
.sp-pp-page.wp-block-group *, .sp-pp-page.wp-block-group *::before, .sp-pp-page.wp-block-group *::after { box-sizing: border-box; }
.sp-pp-page.wp-block-group p { margin: 0 0 20px; font-size: inherit; line-height: 1.9; }
.sp-pp-page.wp-block-group p:last-child { margin-bottom: 0; }
.sp-pp-page.wp-block-group h1, .sp-pp-page.wp-block-group h2, .sp-pp-page.wp-block-group h3 {
  color: var(--sp-pp-text);
  background: none;
  border: 0;
  box-shadow: none;
  padding: 0;
  margin: 0 0 24px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: .025em;
  overflow-wrap: normal;
  word-break: normal;
  text-wrap: balance;
}
.sp-pp-page.wp-block-group h1::before, .sp-pp-page.wp-block-group h1::after,
.sp-pp-page.wp-block-group h2::before, .sp-pp-page.wp-block-group h2::after,
.sp-pp-page.wp-block-group h3::before, .sp-pp-page.wp-block-group h3::after { display: none; }
.sp-pp-page.wp-block-group h2 { font-size: 32px; }
.sp-pp-page.wp-block-group h3 { font-size: clamp(20px, 1.8vw, 25px); }
.sp-pp-page.wp-block-group a { color: inherit; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.sp-pp-page.wp-block-group a:hover { color: #fff; }
.sp-pp-page.wp-block-group a:focus-visible, .sp-pp-page.wp-block-group summary:focus-visible, .sp-pp-page.wp-block-group button:focus-visible {
  outline: 2px solid #e6e6e6;
  outline-offset: 4px;
}
.sp-pp-page.wp-block-group [id] { scroll-margin-top: 112px; }
.sp-pp-page.wp-block-group figure { margin: 0; }
.sp-pp-page.wp-block-group img { max-width: 100%; height: auto; vertical-align: middle; }
.sp-pp-page.wp-block-group .sp-pp-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 56px;
  align-items: center;
  width: 100%;
  max-width: none;
  margin: 40px 0 64px;
}
.sp-pp-page.wp-block-group .sp-pp-hero > *, .sp-pp-page.wp-block-group .sp-pp-row > *, .sp-pp-page.wp-block-group .sp-pp-step-grid > *, .sp-pp-page.wp-block-group .sp-pp-card-grid > * { min-width: 0; margin: 0; }
/* テーマが読み込む Gutenberg columns の display:flex / align-items:normal は強制指定のため、この製品の列だけを戻す。 */
.sp-pp-page .sp-pp-hero.wp-block-columns,
.sp-pp-page .sp-pp-row.wp-block-columns,
.sp-pp-page .sp-pp-wiring-chain.wp-block-columns {
  display: grid !important;
  align-items: center !important;
}
/* テーマの同じ columns 強制指定を、手順・関連製品・本文の列にも適用する。 */
.sp-pp-page .sp-pp-steps.wp-block-columns,
.sp-pp-page .sp-pp-step-grid.wp-block-columns,
.sp-pp-page .sp-pp-related.wp-block-columns,
.sp-pp-page .sp-pp-card-grid.wp-block-columns,
.sp-pp-page .sp-pp-feature-grid.wp-block-columns {
  display: grid !important;
  align-items: stretch !important;
}
/* 入力は Otter ではなく Jetpack / Swiper。ブロックと実行時の移動量は保持する。 */
.sp-pp-page.wp-block-group .sp-pp-hero > .sp-pp-gallery { min-width: 0; width: 100%; padding: 0; margin: 0; align-self: center; }
.sp-pp-page.wp-block-group .sp-pp-hero > .sp-pp-info { align-self: center; margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-hero .wp-block-jetpack-slideshow { width: 100%; max-width: none; margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-hero .wp-block-jetpack-slideshow_container {
  position: relative;
  width: 100%;
  max-width: none;
  height: auto;
  min-height: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: #1d1d1d;
}
.sp-pp-page.wp-block-group .sp-pp-hero .wp-block-jetpack-slideshow_swiper-wrapper {
  display: flex;
  align-items: stretch;
  width: 100%;
  height: auto;
  margin: 0;
  padding: 0;
  list-style: none;
  /* Swiper の inline width / transform / transition は上書きしない。 */
}
.sp-pp-page.wp-block-group .sp-pp-hero .wp-block-jetpack-slideshow_slide {
  flex: 0 0 auto;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  margin: 0;
  padding: 0;
  list-style: none;
  background: #1d1d1d;
}
.sp-pp-page.wp-block-group .sp-pp-hero .wp-block-jetpack-slideshow_slide::before { display: none; }
.sp-pp-page.wp-block-group .sp-pp-hero .wp-block-jetpack-slideshow_slide figure { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; margin: 0; padding: 0; }
.sp-pp-page.wp-block-group .sp-pp-hero .wp-block-jetpack-slideshow_image { display: block; width: 100%; max-width: none; height: 100%; max-height: none; padding: 2%; margin: 0; aspect-ratio: auto; object-fit: contain; object-position: center; }
.sp-pp-page.wp-block-group .sp-pp-hero .wp-block-jetpack-slideshow_button-prev,
.sp-pp-page.wp-block-group .sp-pp-hero .wp-block-jetpack-slideshow_button-next {
  position: absolute;
  top: calc((100% - 36px) / 2);
  bottom: auto;
  z-index: 2;
  width: 36px;
  height: 44px;
  margin: -22px 0 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: #e6e6e6;
  background-color: #15151599;
  background-image: none;
  background-size: 12px 20px;
}
.sp-pp-page.wp-block-group .sp-pp-hero .wp-block-jetpack-slideshow_button-prev { left: 8px; right: auto; }
.sp-pp-page.wp-block-group .sp-pp-hero .wp-block-jetpack-slideshow_button-next { right: 8px; left: auto; }
.sp-pp-page.wp-block-group .sp-pp-hero .wp-block-jetpack-slideshow_button-prev::after,
.sp-pp-page.wp-block-group .sp-pp-hero .wp-block-jetpack-slideshow_button-next::after { display: none; }
.sp-pp-page.wp-block-group .sp-pp-hero .wp-block-jetpack-slideshow_button-prev::before,
.sp-pp-page.wp-block-group .sp-pp-hero .wp-block-jetpack-slideshow_button-next::before { content: ""; display: block; width: 10px; height: 10px; margin: auto; border-top: 2px solid #e6e6e6; border-right: 2px solid #e6e6e6; transform: rotate(45deg); }
.sp-pp-page.wp-block-group .sp-pp-hero .wp-block-jetpack-slideshow_button-prev::before { transform: rotate(-135deg); }
.sp-pp-page.wp-block-group .sp-pp-hero .wp-block-jetpack-slideshow_button-pause { left: 12px; bottom: 48px; }
.sp-pp-page.wp-block-group .sp-pp-hero .wp-block-jetpack-slideshow_pagination {
  position: relative;
  inset: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  height: 36px;
  margin: 0;
  padding: 0;
  transform: none;
  background: #151515;
}
.sp-pp-page.wp-block-group .sp-pp-hero .swiper-pagination-bullet { display: inline-block; width: 6px; height: 6px; margin: 0; border: 0; border-radius: 50%; background: #a0a0a0; opacity: .45; }
.sp-pp-page.wp-block-group .sp-pp-hero .swiper-pagination-bullet-active { background: #e6e6e6; opacity: 1; }
.sp-pp-page.wp-block-group .sp-pp-info .sp-pp-kicker { margin: 0 0 14px; }
.sp-pp-page.wp-block-group .sp-pp-info .sp-pp-title { font-size: clamp(34px, 3.3vw, 48px); line-height: 1.2; letter-spacing: -.025em; margin-bottom: 24px; }
.sp-pp-page.wp-block-group .sp-pp-info .sp-pp-lead { font-size: 16px; margin-bottom: 24px; }
.sp-pp-page.wp-block-group .sp-pp-kicker, .sp-pp-page.wp-block-group .sp-pp-eyebrow { color: var(--sp-pp-muted); font-size: 12px; letter-spacing: .04em; }
.sp-pp-page.wp-block-group .sp-pp-info .sp-pp-status { display: table; padding: 3px 12px; border: 1px solid #646464; border-radius: 20px; font-size: 11px; margin-bottom: 16px; }
.sp-pp-page.wp-block-group .sp-pp-status::before { content: ""; display: inline-block; width: 5px; height: 5px; background: #e6e6e6; border-radius: 50%; margin-right: 8px; vertical-align: middle; }
.sp-pp-page.wp-block-group .sp-pp-info .sp-pp-price { font-size: 15px; font-weight: 600; margin-bottom: 18px; }
.sp-pp-page.wp-block-group .sp-pp-actions { display: flex; gap: 10px; flex-wrap: wrap; margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-actions > div { margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 19px;
  border: 1px solid #a0a0a0;
  border-radius: 0;
  background: transparent;
  color: #e6e6e6;
  box-shadow: none;
  font-size: 13px;
  line-height: 1.6;
  text-decoration: none;
}
.sp-pp-page.wp-block-group .sp-pp-store a { color: #151515; background: #e6e6e6; border-color: #e6e6e6; }
.sp-pp-page.wp-block-group .sp-pp-store a:hover { color: #151515; background: #fff; border-color: #fff; }
.sp-pp-page.wp-block-group .sp-pp-dealer a:hover { background: #292929; }
.sp-pp-page.wp-block-group .sp-pp-note { color: #b8b8b8; font-size: 14px; line-height: 1.85; }
.sp-pp-page.wp-block-group .sp-pp-info .sp-pp-note { margin-top: 14px; margin-bottom: 24px; }
.sp-pp-page.wp-block-group .sp-pp-points {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px 22px;
  padding: 22px 0 0;
  margin: 0;
  border-top: 1px solid var(--sp-pp-line);
  list-style: none;
}
.sp-pp-page.wp-block-group .sp-pp-points li { position: relative; padding: 0 0 0 15px; margin: 0; font-size: 16px; line-height: 1.9; }
.sp-pp-page.wp-block-group .sp-pp-points li::before { content: ""; position: absolute; left: 0; top: .7em; width: 5px; height: 5px; border: 1px solid #a0a0a0; }
.sp-pp-page.wp-block-group .sp-pp-lifestyle, .sp-pp-page.wp-block-group .sp-pp-press { width: 100vw; max-width: none; margin-left: calc(50% - 50vw); }
.sp-pp-page.wp-block-group .sp-pp-lifestyle { margin-top: 0; margin-bottom: 0; background: #1d1d1d; }
.sp-pp-page.wp-block-group .sp-pp-scene img { display: block; width: 100%; max-height: 690px; object-fit: contain; }
.sp-pp-page.wp-block-group .sp-pp-nav {
  position: sticky;
  top: 0;
  z-index: 10;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 28px;
  align-items: center;
  padding: 14px 0;
  margin: 0;
  background: #151515;
  border-block: 1px solid var(--sp-pp-line);
}
.admin-bar .sp-pp-page.wp-block-group .sp-pp-nav { top: 32px; }
.sp-pp-page.wp-block-group .sp-pp-nav p { margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-nav a { display: inline-block; text-decoration: none; }
.sp-pp-page.wp-block-group .sp-pp-nav-name { font-size: 15px; white-space: nowrap; }
.sp-pp-page.wp-block-group .sp-pp-nav-links { display: flex; min-width: 0; gap: 24px; justify-content: center; font-size: 12px; overflow-x: auto; scrollbar-width: thin; }
.sp-pp-page.wp-block-group .sp-pp-nav-links a { flex-shrink: 0; padding-block: 8px; white-space: nowrap; }
.sp-pp-page.wp-block-group .sp-pp-nav-dealer a, .sp-pp-page.wp-block-group .sp-pp-nav > .sp-pp-dealer a { padding: 10px 15px; border: 1px solid #a0a0a0; font-size: 12px; white-space: nowrap; }
.sp-pp-page.wp-block-group .sp-pp-section { padding: 0; margin-top: 96px; margin-bottom: 96px; }
.sp-pp-page.wp-block-group .sp-pp-narrow { width: 100%; max-width: 680px; margin-inline: auto; }
.sp-pp-page.wp-block-group .sp-pp-intro { text-align: center; }
.sp-pp-page.wp-block-group .sp-pp-section > h2 { text-align: center; margin-bottom: 48px; }
.sp-pp-page.wp-block-group .sp-pp-intro > h2 { margin-bottom: 28px; }
.sp-pp-page.wp-block-group .sp-pp-row {
  width: 100%;
  max-width: none;
  display: grid;
  grid-template-columns: minmax(0, 50fr) minmax(0, 44fr);
  gap: 6%;
  align-items: center;
  margin: 0 0 88px;
}
.sp-pp-page.wp-block-group .sp-pp-row:last-child { margin-bottom: 0; }
.sp-pp-page.wp-block-group .sp-pp-selection { margin-top: 88px; margin-bottom: 88px; }
.sp-pp-page.wp-block-group .sp-pp-selection .sp-pp-row { margin-bottom: 0; }
.sp-pp-page.wp-block-group .sp-pp-row-reverse { grid-template-columns: minmax(0, 44fr) minmax(0, 50fr); }
.sp-pp-page.wp-block-group .sp-pp-row-reverse > :first-child { grid-column: 2; grid-row: 1; }
.sp-pp-page.wp-block-group .sp-pp-row-reverse > :last-child { grid-column: 1; grid-row: 1; }
.sp-pp-page.wp-block-group .sp-pp-copy { padding: 12px 0; }
.sp-pp-page.wp-block-group .sp-pp-copy p { color: #e6e6e6; }
.sp-pp-page.wp-block-group .sp-pp-copy .sp-pp-eyebrow { color: var(--sp-pp-muted); margin-bottom: 14px; }
.sp-pp-page.wp-block-group .sp-pp-image { width: 100%; background: var(--sp-pp-panel); }
.sp-pp-page.wp-block-group .sp-pp-image img { display: block; width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; }
.sp-pp-page.wp-block-group .sp-pp-press { background: #090909; padding: 76px max(24px, calc((100vw - 1180px) / 2)); text-align: center; }
.sp-pp-page.wp-block-group .sp-pp-press > h2, .sp-pp-page.wp-block-group .sp-pp-press .sp-pp-narrow > h2 { font-size: 32px; margin-bottom: 32px; }
.sp-pp-page.wp-block-group .sp-pp-press p { font-size: 16px; color: #e6e6e6; }
.sp-pp-page.wp-block-group .sp-pp-press blockquote.wp-block-quote { padding: 0; margin: 34px 0; border: 0; background: none; box-shadow: none; }
.sp-pp-page.wp-block-group .sp-pp-press blockquote.wp-block-quote::before, .sp-pp-page.wp-block-group .sp-pp-press blockquote.wp-block-quote::after { display: none; }
.sp-pp-page.wp-block-group .sp-pp-press blockquote.wp-block-quote p { font-size: clamp(22px, 2vw, 28px); color: #e6e6e6; line-height: 1.8; margin-bottom: 14px; }
.sp-pp-page.wp-block-group .sp-pp-press cite { font-size: 14px; font-style: normal; color: #b8b8b8; }
.sp-pp-page.wp-block-group .sp-pp-press .sp-pp-note { text-align: left; margin-top: 36px; }
.sp-pp-page.wp-block-group .sp-pp-steps:not(.sp-pp-section), .sp-pp-page.wp-block-group .sp-pp-step-grid, .sp-pp-page.wp-block-group .sp-pp-related:not(.sp-pp-section), .sp-pp-page.wp-block-group .sp-pp-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px;
  margin: 0;
}
.sp-pp-page.wp-block-group .sp-pp-step { min-width: 0; padding: 26px 0 0; border-top: 1px solid #555; }
.sp-pp-page.wp-block-group .sp-pp-setup-photo { max-width: 540px; margin: 0 auto 36px; }
.sp-pp-page.wp-block-group .sp-pp-step .sp-pp-step-number { color: #a0a0a0; font-size: 25px; letter-spacing: .04em; margin-bottom: 18px; }
.sp-pp-page.wp-block-group .sp-pp-step h3 { font-size: 19px; margin-bottom: 18px; }
.sp-pp-page.wp-block-group .sp-pp-step p { font-size: 16px; }
.sp-pp-page.wp-block-group .sp-pp-route { margin-block: 36px; padding: 22px 12px; text-align: center; border-block: 1px solid #333; }
.sp-pp-page.wp-block-group .sp-pp-mechanism > p { max-width: 680px; margin: 0 auto 48px; }
.sp-pp-page.wp-block-group .sp-pp-mechanism > .sp-pp-narrow { margin-top: 64px; }
.sp-pp-page.wp-block-group .sp-pp-faq { max-width: 680px; margin-inline: auto; }
.sp-pp-page.wp-block-group .sp-pp-faq details { border-bottom: 1px solid #333; padding: 0; margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-faq details:first-of-type { border-top: 1px solid #333; }
.sp-pp-page.wp-block-group .sp-pp-faq summary { position: relative; cursor: pointer; list-style: none; padding: 22px 32px 22px 0; line-height: 1.8; }
.sp-pp-page.wp-block-group .sp-pp-faq summary::-webkit-details-marker { display: none; }
.sp-pp-page.wp-block-group .sp-pp-faq summary::after { content: "+"; position: absolute; right: 4px; top: 20px; font-size: 22px; font-weight: 300; }
.sp-pp-page.wp-block-group .sp-pp-faq details[open] > summary::after { content: "−"; }
.sp-pp-page.wp-block-group .sp-pp-faq details p { font-size: 16px; color: #e6e6e6; margin: 0 0 24px; }
.sp-pp-page.wp-block-group .sp-pp-overview { background: #1d1d1d; padding: 48px 36px; }
.sp-pp-page.wp-block-group .sp-pp-overview p { margin-top: 24px; font-size: 14px; color: #b8b8b8; }
.sp-pp-page.wp-block-group .wp-block-table { margin: 0; border: 0; overflow-x: auto; }
.sp-pp-page.wp-block-group .wp-block-table table { width: 100%; border-collapse: collapse; border: 0; font-size: 16px; line-height: 1.9; text-align: left; }
.sp-pp-page.wp-block-group .wp-block-table td, .sp-pp-page.wp-block-group .wp-block-table th { border: 0; border-bottom: 1px solid #333; padding: 16px 14px; vertical-align: top; background: none; overflow-wrap: anywhere; }
.sp-pp-page.wp-block-group .wp-block-table tr { background: none; }
.sp-pp-page.wp-block-group .wp-block-table tr:first-child td { border-top: 1px solid #333; }
.sp-pp-page.wp-block-group .wp-block-table td:first-child { color: #e6e6e6; padding-left: 0; }
.sp-pp-page.wp-block-group .wp-block-table td:last-child { padding-right: 0; }
.sp-pp-page.wp-block-group .sp-pp-specs .wp-block-table td:first-child, .sp-pp-page.wp-block-group .wp-block-table.sp-pp-specs td:first-child { width: 31%; }
.sp-pp-page.wp-block-group .sp-pp-specs { width: 100%; max-width: 780px; margin-inline: auto; }
.sp-pp-page.wp-block-group .sp-pp-overview-table.wp-block-table tr:first-child td { font-size: 14px; color: #b8b8b8; }
.sp-pp-page.wp-block-group .sp-pp-overview-table.wp-block-table tr:last-child td { color: #e6e6e6; }
.sp-pp-page.wp-block-group .sp-pp-copy .wp-block-table table { margin-block: 24px; font-size: 16px; }
.sp-pp-page.wp-block-group .sp-pp-card { min-width: 0; background: #1d1d1d; padding: 24px; }
.sp-pp-page.wp-block-group .sp-pp-card h3 { font-size: 20px; margin-top: 24px; margin-bottom: 16px; }
.sp-pp-page.wp-block-group .sp-pp-card h3:first-child { margin-top: 0; }
.sp-pp-page.wp-block-group .sp-pp-card h3 a { text-decoration: none; }
.sp-pp-page.wp-block-group .sp-pp-card p { font-size: 16px; line-height: 1.9; }
.sp-pp-page.wp-block-group .sp-pp-card .sp-pp-image img { aspect-ratio: auto; }
.sp-pp-page.wp-block-group .sp-pp-related + p, .sp-pp-page.wp-block-group .sp-pp-card-grid + p { margin-top: 28px; }
.sp-pp-page.wp-block-group .sp-pp-purchase { width: 100%; max-width: none; padding: 56px 32px; background: #1d1d1d; text-align: center; }
.sp-pp-page.wp-block-group .sp-pp-purchase > h2 { margin-bottom: 24px; }
.sp-pp-page.wp-block-group .sp-pp-purchase > p { max-width: 620px; margin-inline: auto; margin-bottom: 32px; }
.sp-pp-page.wp-block-group .sp-pp-purchase .sp-pp-actions { justify-content: center; }
/* 改訂版: 要約、配線図、引用を読み分ける。既存の写真と本文の交互配置は維持する。 */
.sp-pp-page.wp-block-group .sp-pp-info .sp-pp-catch { color: #e6e6e6; font-size: 19px; line-height: 1.7; margin-bottom: 12px; }
.sp-pp-page.wp-block-group .sp-pp-checklist { padding: 0; margin: 28px 0; list-style: none; text-align: left; }
.sp-pp-page.wp-block-group .sp-pp-checklist li { position: relative; padding: 13px 0 13px 28px; margin: 0; border-bottom: 1px solid #333; font-size: 16px; line-height: 1.9; }
.sp-pp-page.wp-block-group .sp-pp-checklist li::before { content: "✓"; position: absolute; left: 0; top: 13px; color: #a0a0a0; }
.sp-pp-page.wp-block-group .sp-pp-wiring { padding: 36px 28px; margin: 0 0 36px; background: #1d1d1d; border: 1px solid #333; }
.sp-pp-page.wp-block-group .sp-pp-wiring-chain { display: grid; grid-template-columns: minmax(0, 1fr) 32px minmax(0, 1.5fr) 32px minmax(0, 1fr); align-items: center; gap: 16px; width: 100%; margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-wiring-chain > * { min-width: 0; margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-wire-node { padding: 22px 14px; border: 1px solid #777; background: #151515; text-align: center; overflow-wrap: anywhere; }
.sp-pp-page.wp-block-group .sp-pp-wire-node p { font-size: 16px; line-height: 1.7; margin-bottom: 12px; }
.sp-pp-page.wp-block-group .sp-pp-wire-node p:last-child { margin-bottom: 0; }
.sp-pp-page.wp-block-group .sp-pp-wire-product { border-color: #d0d0d0; }
.sp-pp-page.wp-block-group .sp-pp-wire-arrow { font-size: 28px; line-height: 1; text-align: center; margin: 0; color: #a0a0a0; }
.sp-pp-page.wp-block-group .sp-pp-wire-node .sp-pp-wire-label { color: #bcbcbc; font-size: 12px; letter-spacing: .035em; }
.sp-pp-page.wp-block-group .sp-pp-wire-power { width: 100%; max-width: 290px; padding: 16px; margin: 20px auto 0; border-top: 1px solid #555; text-align: center; }
.sp-pp-page.wp-block-group .sp-pp-wire-power p { font-size: 13px; line-height: 1.8; margin-bottom: 8px; }
.sp-pp-page.wp-block-group .sp-pp-wire-power .sp-pp-wire-feed { font-size: 26px; line-height: 1; margin-bottom: 10px; }
.sp-pp-page.wp-block-group .sp-pp-press-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; max-width: 1180px; margin: 32px auto 0; text-align: left; }
.sp-pp-page.wp-block-group .sp-pp-press-single { grid-template-columns: minmax(0, 1fr); max-width: 780px; }
.sp-pp-page.wp-block-group .sp-pp-quote-card { min-width: 0; padding: 32px; margin: 0; border: 1px solid #333; background: #151515; }
.sp-pp-page.wp-block-group .sp-pp-quote-card blockquote.wp-block-quote { margin: 0 0 24px; }
.sp-pp-page.wp-block-group .sp-pp-quote-card > p { font-size: 16px; line-height: 1.9; }
.sp-pp-page.wp-block-group .sp-pp-press > .sp-pp-note { max-width: 780px; margin-inline: auto; text-align: center; }
.sp-pp-page.wp-block-group .sp-pp-spec-note { display: block; margin-top: 8px; color: #b8b8b8; font-size: 14px; line-height: 1.9; }
.sp-pp-page.wp-block-group .sp-pp-spec-list { padding-left: 1.3em; margin: 0; list-style: disc; }
.sp-pp-page.wp-block-group .sp-pp-spec-list li { padding: 0; margin: 0 0 6px; }
.sp-pp-page.wp-block-group .sp-pp-spec-list li:last-child { margin-bottom: 0; }
.sp-pp-page.wp-block-group .sp-pp-feature-text { max-width: 780px; margin: 0 auto 88px; padding: 40px 0; border-block: 1px solid #333; }
.sp-pp-page.wp-block-group .sp-pp-visual > .sp-pp-feature-text,
.sp-pp-page.wp-block-group .sp-pp-feature-grid > .sp-pp-feature-text { margin-bottom: 0; }
.sp-pp-page.wp-block-group .sp-pp-feature-text h3 { font-size: clamp(24px, 2.4vw, 32px); }
.sp-pp-page.wp-block-group .sp-pp-wide-feature { width: 100%; margin: 0 0 88px; }
.sp-pp-page.wp-block-group .sp-pp-wide-feature > .sp-pp-image { margin-bottom: 36px; }
.sp-pp-page.wp-block-group .sp-pp-wide-feature > .sp-pp-image img { width: 100%; aspect-ratio: auto; max-height: 640px; object-fit: contain; }
.sp-pp-page.wp-block-group .sp-pp-wide-feature > .sp-pp-copy { max-width: 780px; margin-inline: auto; }
.sp-pp-page.wp-block-group .sp-pp-feature-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 48px; margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-feature-grid > * { min-width: 0; margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-term-notes { padding: 28px 32px; margin-top: 32px; border-left: 2px solid #888; background: #1d1d1d; }
.sp-pp-page.wp-block-group .sp-pp-term-notes p { font-size: 16px; line-height: 1.8; }
.sp-pp-page.wp-block-group .sp-pp-purchase .sp-pp-price { font-size: 16px; font-weight: 600; }
/* REV2: 問題・通り道・製品の役割を、写真を増やさず三つの図で示す。 */
.sp-pp-page.wp-block-group .sp-pp-story > .sp-pp-narrow { margin-bottom: 36px; }
.sp-pp-page.wp-block-group .sp-pp-story > p { max-width: 780px; margin-inline: auto; margin-bottom: 36px; }
/* テーマの core/columns の display と align-items 強制値を、新しい図の列でも戻す。 */
.sp-pp-page .sp-pp-story-grid.wp-block-columns,
.sp-pp-page .sp-pp-model-grid.wp-block-columns,
.sp-pp-page .sp-pp-wire-action-chain.wp-block-columns { display: grid !important; align-items: stretch !important; }
.sp-pp-page.wp-block-group .sp-pp-story-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-story-panel { min-width: 0; margin: 0; padding: 28px 22px; background: #1d1d1d; border-top: 2px solid #777; }
.sp-pp-page.wp-block-group .sp-pp-story-panel:last-child { border-color: #e6e6e6; }
.sp-pp-page.wp-block-group .sp-pp-story-panel h3 { font-size: 22px; margin-bottom: 20px; }
.sp-pp-page.wp-block-group .sp-pp-story-visual { min-height: 160px; display: flex; flex-direction: column; align-items: stretch; justify-content: center; padding: 20px 12px; margin: 0 0 20px; background: #151515; }
.sp-pp-page.wp-block-group .sp-pp-story-node { padding: 12px; border: 1px solid #777; text-align: center; margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-story-node p { margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-story-arrow { text-align: center; font-size: 22px; line-height: 1.3; margin: 8px 0; color: #a0a0a0; }
.sp-pp-page.wp-block-group .sp-pp-story-caption { font-size: 16px; line-height: 1.9; margin: 0; }
/* 引用のすぐ後に一つの選択肢を置き、仕様を読み進める前にも購入先へ進める。 */
.sp-pp-page.wp-block-group .sp-pp-press-cta { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 28px 32px; margin: -56px 0 96px; background: #1d1d1d; border: 1px solid #333; }
.sp-pp-page.wp-block-group .sp-pp-press-cta > p { margin: 0; font-size: 16px; }
.sp-pp-page.wp-block-group .sp-pp-press-cta .sp-pp-actions { flex-shrink: 0; }
.sp-pp-page.wp-block-group .sp-pp-purchase .sp-pp-checklist { width: fit-content; max-width: 100%; margin: 0 auto 32px; }
.sp-pp-page.wp-block-group .sp-pp-purchase .sp-pp-checklist li { border: 0; padding-block: 8px; }
.sp-pp-page.wp-block-group .sp-pp-purchase .sp-pp-checklist li::before { top: 8px; }
.sp-pp-page.wp-block-group .sp-pp-type { display: table; border: 1px solid #777; padding: 3px 10px; margin: 0 0 18px; font-size: 12px; line-height: 1.6; color: #a0a0a0; }
.sp-pp-page.wp-block-group .sp-pp-manual { margin-top: 14px; font-size: 14px; color: #b8b8b8; }
.sp-pp-page.wp-block-group .sp-pp-manual a { display: inline; padding: 0; border: 0; background: none; text-decoration: underline; }
.sp-pp-page.wp-block-group .sp-pp-wiring-chain { grid-template-columns: minmax(0, 1fr) 120px minmax(0, 1.5fr) 120px minmax(0, 1fr); gap: 14px; }
.sp-pp-page.wp-block-group .sp-pp-wire-link { min-width: 0; text-align: center; }
.sp-pp-page.wp-block-group .sp-pp-wire-link p { font-size: 16px; margin: 0 0 10px; }
.sp-pp-page.wp-block-group .sp-pp-wire-link .sp-pp-wire-arrow { font-size: 28px; margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-wire-link .sp-pp-wire-direction { font-size: 28px; line-height: 1; margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-wire-power-branch { grid-column: 3; grid-row: 2; max-width: none; width: 100%; margin: 0; padding: 20px 12px; border: 1px solid #777; background: #151515; }
.sp-pp-page.wp-block-group .sp-pp-wire-node p, .sp-pp-page.wp-block-group .sp-pp-wire-power p { line-height: 1.9; }
.sp-pp-page.wp-block-group .sp-pp-model-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-model-grid .sp-pp-wire-node { padding: 20px 8px; }
.sp-pp-page.wp-block-group .sp-pp-model-grid h3 { font-size: 26px; margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-selection-diagram,
.sp-pp-page.wp-block-group .sp-pp-circuit-diagram { padding: 24px; margin: 0 0 32px; background: #1d1d1d; }
.sp-pp-page.wp-block-group .sp-pp-selection-diagram { max-width: 680px; margin-inline: auto; }
.sp-pp-page.wp-block-group .sp-pp-wire-action { padding-bottom: 28px; margin-bottom: 28px; border-bottom: 1px solid #555; }
.sp-pp-page.wp-block-group .sp-pp-wire-action:last-child { padding-bottom: 0; margin-bottom: 0; border-bottom: 0; }
.sp-pp-page.wp-block-group .sp-pp-wire-action > .sp-pp-wire-label { font-size: 20px; margin-bottom: 20px; }
.sp-pp-page.wp-block-group .sp-pp-wire-action-chain { display: grid; grid-template-columns: minmax(0, 1fr) 32px minmax(0, 1fr); gap: 20px; margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-wire-action-chain > * { min-width: 0; margin: 0; align-content: center; }
.sp-pp-page.wp-block-group .sp-pp-wire-action-chain .sp-pp-wire-node p { margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-wire-action-chain .sp-pp-wire-arrow p { margin: 0; font-size: 28px; line-height: 1; }
.sp-pp-page.wp-block-group .sp-pp-mechanism > .sp-pp-image { margin-bottom: 48px; }
/* REV3: 文節を保った見出し、写真中心の統合図、注記と購入導線。 */
.sp-pp-page.wp-block-group .sp-pp-gallery-cover { display: flex; align-items: center; justify-content: center; width: 100%; margin: 0; background: #1d1d1d; }
.sp-pp-page.wp-block-group .sp-pp-gallery-cover img { display: block; width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; padding: 2%; }
.sp-pp-page.wp-block-group .sp-pp-gallery-details { margin-top: 16px; padding: 0; border: 1px solid #555; background: #1d1d1d; }
.sp-pp-page.wp-block-group .sp-pp-gallery-details > summary { padding: 12px 16px; cursor: pointer; color: #e6e6e6; font-size: 14px; line-height: 1.9; }
.sp-pp-page.wp-block-group .sp-pp-gallery-details[open] > summary { border-bottom: 1px solid #555; }
.sp-pp-page.wp-block-group figcaption { color: #b8b8b8; font-size: 14px; line-height: 1.9; margin-top: 14px; }

.sp-pp-page.wp-block-group .sp-pp-nb,
.sp-pp-page.wp-block-group .sp-pp-jan { white-space: nowrap; overflow-wrap: normal; word-break: normal; }
.sp-pp-page.wp-block-group .sp-pp-points li { text-wrap: pretty; }
.sp-pp-page.wp-block-group .sp-pp-system { padding: 28px; background: #1d1d1d; border: 1px solid #333; }
.sp-pp-page.wp-block-group .sp-pp-system .sp-pp-image img,
.sp-pp-page.wp-block-group .sp-pp-size .sp-pp-image img { aspect-ratio: auto; }
.sp-pp-page.wp-block-group .sp-pp-system > p { max-width: 780px; margin: 24px auto 0; }
.sp-pp-page.wp-block-group .sp-pp-system-labels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 20px 0 0; padding: 0; list-style: none; text-align: center; }
.sp-pp-page.wp-block-group .sp-pp-system-labels > * { min-width: 0; margin: 0; font-size: 16px; line-height: 1.9; text-wrap: balance; }
.sp-pp-page.wp-block-group .sp-pp-system-labels p { margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-setup-photo { position: relative; width: 100%; max-width: 900px; }
.sp-pp-page.wp-block-group .sp-pp-setup-photo img { width: 100%; height: auto; object-fit: contain; }
.sp-pp-page.wp-block-group .sp-pp-badge { position: absolute; z-index: 1; display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 1px solid #e6e6e6; border-radius: 50%; color: #151515; background: #e6e6e6; font-size: 22px; font-weight: 600; line-height: 1; transform: translate(-50%, -50%); }
.sp-pp-page.wp-block-group .sp-pp-step { padding: 24px; background: #1d1d1d; }
.sp-pp-page.wp-block-group .sp-pp-step .sp-pp-step-number { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 1px solid #888; border-radius: 50%; color: #e6e6e6; font-size: 24px; line-height: 1; }
.sp-pp-page.wp-block-group .sp-pp-cable-note { margin-top: 28px; padding: 20px 24px; border: 1px solid #555; color: #b8b8b8; font-size: 14px; line-height: 1.9; }
.sp-pp-page.wp-block-group .sp-pp-cable-note p,
.sp-pp-page.wp-block-group .sp-pp-cable-note li { color: #b8b8b8; font-size: 14px; line-height: 1.9; }
.sp-pp-page.wp-block-group .sp-pp-cable-note ul { margin: 0; padding-left: 1.3em; }
.sp-pp-page.wp-block-group .sp-pp-cable-note li + li { margin-top: 10px; }
.sp-pp-page.wp-block-group .sp-pp-legend { padding-left: 1.6em; margin: 24px 0 0; }
.sp-pp-page.wp-block-group .sp-pp-legend li { padding-left: 4px; margin-bottom: 10px; font-size: 16px; line-height: 1.9; }
.sp-pp-page.wp-block-group .sp-pp-accessories { margin: 0; padding-left: 1.3em; list-style: disc; }
.sp-pp-page.wp-block-group .sp-pp-accessories li { margin: 0 0 6px; padding: 0; }
.sp-pp-page.wp-block-group .sp-pp-quote-card cite a,
.sp-pp-page.wp-block-group .sp-pp-quote-card > p a { color: #e6e6e6; font-size: 16px; text-decoration: underline; }
.sp-pp-page.wp-block-group .sp-pp-quote-card .sp-pp-note { color: #b8b8b8; font-size: 14px; }
.sp-pp-page.wp-block-group .sp-pp-related-link { display: flex; flex-direction: column; height: 100%; padding: 24px; border: 1px solid #333; background: #1d1d1d; color: #e6e6e6; text-decoration: none; }
.sp-pp-page.wp-block-group .sp-pp-related-link:hover { border-color: #b8b8b8; background: #242424; }
.sp-pp-page.wp-block-group .sp-pp-related-link h3 { margin-top: 24px; }
.sp-pp-page.wp-block-group .sp-pp-related-link p { font-size: 16px; line-height: 1.9; }
.sp-pp-page.wp-block-group .sp-pp-related-link .sp-pp-type { font-size: 14px; color: #b8b8b8; }
.sp-pp-page.wp-block-group .sp-pp-related-link .sp-pp-more { margin-top: auto; padding-top: 20px; text-decoration: underline; text-underline-offset: 4px; }
.sp-pp-page.wp-block-group .sp-pp-card:has(> .sp-pp-related-link) { padding: 0; }
/* テーマの core/columns の強制 display:flex を、この購入欄と図のラベルだけ戻す。 */
.sp-pp-page .sp-pp-purchase-row.wp-block-columns,
.sp-pp-page .sp-pp-system-labels.wp-block-columns { display: grid !important; align-items: center !important; }
.sp-pp-page.wp-block-group .sp-pp-purchase-row { display: grid; grid-template-columns: 50% minmax(0, 1fr); gap: 36px; align-items: center; margin: 0; text-align: left; }
.sp-pp-page.wp-block-group .sp-pp-purchase-row > * { min-width: 0; margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-purchase-row .sp-pp-image img { aspect-ratio: auto; height: auto; contain: none; }
.sp-pp-page.wp-block-group .sp-pp-purchase-row .sp-pp-checklist { width: 100%; margin: 0 0 24px; }
.sp-pp-page.wp-block-group .sp-pp-purchase-row .sp-pp-actions { justify-content: flex-start; }
.sp-pp-page.wp-block-group .sp-pp-overview-rows.wp-block-table tr:first-child td { font-size: 16px; }
.sp-pp-page.wp-block-group .sp-pp-overview-rows.wp-block-table td:first-child { width: 25%; color: #b8b8b8; }
.sp-pp-page.wp-block-group .sp-pp-overview-rows.wp-block-table td:last-child { color: #e6e6e6; }
.sp-pp-page.wp-block-group .sp-pp-lifestyle { background: #151515; }
.sp-pp-page.wp-block-group .sp-pp-lifestyle figcaption { max-width: 1180px; margin: 0 auto; padding: 16px 20px; color: #b8b8b8; font-size: 14px; line-height: 1.9; }
@media (max-width: 1250px) {
  .sp-pp-page.wp-block-group .sp-pp-hero { gap: 36px; }
  .sp-pp-page.wp-block-group .sp-pp-nav { gap: 16px; }
  .sp-pp-page.wp-block-group .sp-pp-nav-links { gap: 16px; }
}
@media (max-width: 1100px) and (min-width: 782px) {
  .sp-pp-page.wp-block-group .sp-pp-nav { grid-template-columns: minmax(0, 1fr) auto; gap: 4px 24px; }
  .sp-pp-page.wp-block-group .sp-pp-nav-links { grid-row: 2; grid-column: 1 / -1; justify-content: flex-start; }
  .sp-pp-page.wp-block-group .sp-pp-nav-dealer, .sp-pp-page.wp-block-group .sp-pp-nav > .sp-pp-dealer { grid-column: 2; grid-row: 1; }
}
/* 配線図は端子名が読める幅を優先し、タブレットでも縦に並べる。 */
@media (max-width: 1000px) {
  .sp-pp-page.wp-block-group .sp-pp-wiring-chain { grid-template-columns: minmax(0, 1fr); gap: 16px; max-width: 420px; margin-inline: auto; }
  .sp-pp-page.wp-block-group .sp-pp-wire-node { width: 100%; padding: 20px 16px; }
  .sp-pp-page.wp-block-group .sp-pp-wire-arrow { width: 32px; height: 32px; margin-inline: auto; transform: rotate(90deg); }
  .sp-pp-page.wp-block-group .sp-pp-wire-link.sp-pp-wire-arrow { width: auto; height: auto; transform: none; }
  .sp-pp-page.wp-block-group .sp-pp-wire-link .sp-pp-wire-direction { width: 32px; height: 32px; margin: 0 auto; transform: rotate(90deg); }
  .sp-pp-page.wp-block-group .sp-pp-wire-power-branch { grid-column: 1; grid-row: auto; margin-top: 16px; }
  .sp-pp-page.wp-block-group .sp-pp-wire-action-chain { grid-template-columns: minmax(0, 1fr); gap: 16px; }
}
@media (max-width: 781px) {
  .sp-pp-page.wp-block-group .sp-pp-system { padding: 16px; }
  .sp-pp-page.wp-block-group .sp-pp-system-labels { gap: 8px; margin-top: 16px; }
  .sp-pp-page.wp-block-group .sp-pp-system-labels > * { font-size: 14px; }
  .sp-pp-page.wp-block-group .sp-pp-purchase-row { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .sp-pp-page.wp-block-group .sp-pp-badge { width: 28px; height: 28px; font-size: 18px; }
  .sp-pp-page.wp-block-group .sp-pp-cable-note { padding: 18px; }
  .sp-pp-page.wp-block-group .sp-pp-related-link { padding: 20px; }
  .sp-pp-page.wp-block-group .sp-pp-specs table,
  .sp-pp-page.wp-block-group .sp-pp-specs tbody,
  .sp-pp-page.wp-block-group .sp-pp-specs tr,
  .sp-pp-page.wp-block-group .sp-pp-overview-rows table,
  .sp-pp-page.wp-block-group .sp-pp-overview-rows tbody,
  .sp-pp-page.wp-block-group .sp-pp-overview-rows tr { display: block; width: 100%; }
  .sp-pp-page.wp-block-group .sp-pp-specs.wp-block-table tr,
  .sp-pp-page.wp-block-group .sp-pp-specs .wp-block-table tr,
  .sp-pp-page.wp-block-group .sp-pp-overview-rows.wp-block-table tr { padding: 16px 0; border-bottom: 1px solid #333; }
  .sp-pp-page.wp-block-group .sp-pp-specs.wp-block-table td,
  .sp-pp-page.wp-block-group .sp-pp-specs .wp-block-table td,
  .sp-pp-page.wp-block-group .sp-pp-overview-rows.wp-block-table td { display: block; width: 100%; padding: 0; border: 0; }
  .sp-pp-page.wp-block-group .sp-pp-specs.wp-block-table td:first-child,
  .sp-pp-page.wp-block-group .sp-pp-specs .wp-block-table td:first-child,
  .sp-pp-page.wp-block-group .sp-pp-overview-rows.wp-block-table td:first-child { width: 100%; margin-bottom: 8px; color: #b8b8b8; font-size: 14px; }
  .sp-pp-page.wp-block-group .sp-pp-overview-rows.wp-block-table tr:first-child { display: block; }
  .sp-pp-page.wp-block-group .sp-pp-overview-rows.sp-pp-overview-table.wp-block-table tr:last-child td:nth-child(n)::before { content: none; }

  .sp-pp-page.wp-block-group { width: calc(100vw - 40px); margin-inline: calc((100% - (100vw - 40px)) / 2); font-size: 16px; }
  .sp-pp-page.wp-block-group [id] { scroll-margin-top: 148px; }
  .sp-pp-page.wp-block-group h2 { font-size: 24px; }
  .sp-pp-page.wp-block-group h3 { font-size: 21px; }
  .sp-pp-page.wp-block-group .sp-pp-hero { grid-template-columns: minmax(0, 1fr); gap: 28px; margin-top: 24px; margin-bottom: 40px; }
  .sp-pp-page.wp-block-group .sp-pp-info .sp-pp-title { font-size: 36px; }
  .sp-pp-page.wp-block-group .sp-pp-info .sp-pp-lead { font-size: 16px; }
  .sp-pp-page.wp-block-group .sp-pp-actions { flex-direction: column; width: 100%; }
  .sp-pp-page.wp-block-group .sp-pp-actions > div, .sp-pp-page.wp-block-group .sp-pp-actions a { width: 100%; }
  .sp-pp-page.wp-block-group .sp-pp-points { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .sp-pp-page.wp-block-group .sp-pp-lifestyle .sp-pp-scene img { max-height: none; }
  .sp-pp-page.wp-block-group .sp-pp-nav { grid-template-columns: minmax(0, 1fr) auto; gap: 6px 12px; padding-block: 10px 4px; }
  .sp-pp-page.wp-block-group .sp-pp-nav-name { font-size: 12px; }
  .sp-pp-page.wp-block-group .sp-pp-nav-links { grid-row: 2; grid-column: 1 / -1; justify-content: space-between; gap: 16px; overflow-x: auto; scrollbar-width: thin; }
  .sp-pp-page.wp-block-group .sp-pp-nav-links a { font-size: 11px; padding-block: 8px; }
  .sp-pp-page.wp-block-group .sp-pp-nav-dealer, .sp-pp-page.wp-block-group .sp-pp-nav > .sp-pp-dealer { grid-row: 1; grid-column: 2; }
  .sp-pp-page.wp-block-group .sp-pp-nav-dealer a, .sp-pp-page.wp-block-group .sp-pp-nav > .sp-pp-dealer a { font-size: 10px; padding: 8px 10px; }
  .sp-pp-page.wp-block-group .sp-pp-section { margin-top: 56px; margin-bottom: 56px; }
  .sp-pp-page.wp-block-group .sp-pp-section > h2 { margin-bottom: 32px; }
  .sp-pp-page.wp-block-group .sp-pp-narrow { width: 100%; }
  .sp-pp-page.wp-block-group .sp-pp-row, .sp-pp-page.wp-block-group .sp-pp-row-reverse { grid-template-columns: minmax(0, 1fr); gap: 24px; margin-bottom: 56px; }
  .sp-pp-page.wp-block-group .sp-pp-row-reverse > :first-child, .sp-pp-page.wp-block-group .sp-pp-row-reverse > :last-child { grid-column: auto; grid-row: auto; }
  .sp-pp-page.wp-block-group .sp-pp-copy { padding: 0; }
  .sp-pp-page.wp-block-group .sp-pp-selection { margin-top: 56px; margin-bottom: 56px; }
  .sp-pp-page.wp-block-group .sp-pp-copy h3 { margin-bottom: 18px; }
  .sp-pp-page.wp-block-group .sp-pp-press { padding: 48px 24px; }
  .sp-pp-page.wp-block-group .sp-pp-press > h2, .sp-pp-page.wp-block-group .sp-pp-press .sp-pp-narrow > h2 { font-size: 24px; }
  .sp-pp-page.wp-block-group .sp-pp-press blockquote.wp-block-quote p { font-size: 22px; }
  .sp-pp-page.wp-block-group .sp-pp-steps:not(.sp-pp-section), .sp-pp-page.wp-block-group .sp-pp-step-grid, .sp-pp-page.wp-block-group .sp-pp-related:not(.sp-pp-section), .sp-pp-page.wp-block-group .sp-pp-card-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .sp-pp-page.wp-block-group .sp-pp-step { padding-top: 20px; }
  .sp-pp-page.wp-block-group .sp-pp-step .sp-pp-step-number { margin-bottom: 12px; }
  .sp-pp-page.wp-block-group .sp-pp-mechanism > .sp-pp-narrow { margin-top: 40px; }
  .sp-pp-page.wp-block-group .sp-pp-overview { padding: 32px 18px; }
  .sp-pp-page.wp-block-group .wp-block-table td, .sp-pp-page.wp-block-group .wp-block-table th { padding: 14px 10px; font-size: 16px; }
  .sp-pp-page.wp-block-group .sp-pp-overview-table table, .sp-pp-page.wp-block-group .sp-pp-overview-table tbody, .sp-pp-page.wp-block-group .sp-pp-overview-table tr { display: block; }
  .sp-pp-page.wp-block-group .sp-pp-overview-table tr { display: grid; grid-template-columns: minmax(0, 1fr); }
  .sp-pp-page.wp-block-group .sp-pp-overview-table tr:first-child { display: none; }
  .sp-pp-page.wp-block-group .sp-pp-card { padding: 22px; }
  .sp-pp-page.wp-block-group .sp-pp-card h3 { font-size: 21px; }
  .sp-pp-page.wp-block-group .sp-pp-purchase { padding: 40px 20px; }
  .sp-pp-page.wp-block-group .sp-pp-wiring { padding: 24px 18px; }
  .sp-pp-page.wp-block-group .sp-pp-press-cards { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .sp-pp-page.wp-block-group .sp-pp-quote-card { padding: 28px 22px; }
  .sp-pp-page.wp-block-group .sp-pp-feature-text { padding-block: 28px; margin-bottom: 56px; }
  .sp-pp-page.wp-block-group .sp-pp-wide-feature { margin-bottom: 56px; }
  .sp-pp-page.wp-block-group .sp-pp-wide-feature > .sp-pp-image { margin-bottom: 28px; }
  .sp-pp-page.wp-block-group .sp-pp-feature-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .sp-pp-page.wp-block-group .sp-pp-term-notes { padding: 24px 20px; }
  .sp-pp-page.wp-block-group .sp-pp-story-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .sp-pp-page.wp-block-group .sp-pp-story-panel { padding: 24px 20px; }
  .sp-pp-page.wp-block-group .sp-pp-story-visual { min-height: 0; padding: 16px 12px; }
  .sp-pp-page.wp-block-group .sp-pp-press-cta { flex-direction: column; align-items: stretch; gap: 20px; padding: 24px 20px; margin: -28px 0 56px; }
  .sp-pp-page.wp-block-group .sp-pp-press-cta .sp-pp-actions { width: 100%; }
  .sp-pp-page.wp-block-group .sp-pp-purchase .sp-pp-checklist { width: 100%; }
  .sp-pp-page.wp-block-group .sp-pp-model-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  .sp-pp-page.wp-block-group *, .sp-pp-page.wp-block-group *::before, .sp-pp-page.wp-block-group *::after { animation: none; transition: none; scroll-behavior: auto; }
}
.sp-pp-circuit-graphic{display:block;width:100%;height:auto;background:#1d1d1d;padding:20px}
.sp-pp-label-example{font-size:28px;letter-spacing:.02em}
.sp-pp-port-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.sp-pp-page.wp-block-group .sp-pp-setup-photo .sp-pp-image{margin:0;padding:0}
.sp-pp-page.wp-block-group .sp-pp-suitability{padding:24px;border:1px solid #555;text-align:left;margin-top:28px}
.sp-pp-page.wp-block-group .sp-pp-suitability h3{font-size:20px}
@media(max-width:781px){.sp-pp-page.wp-block-group .sp-pp-nb{letter-spacing:0}.sp-pp-page.wp-block-group .sp-pp-purchase h2 .sp-pp-nb{white-space:normal}.sp-pp-page.wp-block-group .sp-pp-overview-rows.sp-pp-overview td{display:block;width:100%;padding:0}.sp-pp-page.wp-block-group .sp-pp-overview-rows.sp-pp-overview td:first-child{width:100%;margin-bottom:8px;color:#b8b8b8;font-size:14px}}
.sp-pp-page.wp-block-group .sp-pp-press > .sp-pp-note{color:#b8b8b8;font-size:14px}
.sp-pp-page.wp-block-group .sp-pp-lifestyle > .sp-pp-note{max-width:1180px;margin:0 auto;padding:16px 20px}
/* REV4: 実写真の縦横比を保ち、写真直下の説明をひと続きに読む。 */
.sp-pp-page.wp-block-group .sp-pp-real-photo img { display: block; width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; }
.sp-pp-page.wp-block-group .sp-pp-real-system > .sp-pp-image { margin-top: 28px; }
.sp-pp-page.wp-block-group .sp-pp-real-system > .sp-pp-photo-caption { max-width: none; }
.sp-pp-page.wp-block-group .sp-pp-photo-caption { margin-top: 16px; margin-bottom: 12px; color: #b8b8b8; font-size: 14px; line-height: 1.9; }
.sp-pp-page.wp-block-group .sp-pp-box .sp-pp-image img { aspect-ratio: auto; }
.sp-pp-page.wp-block-group .sp-pp-setup-photo + .sp-pp-note { margin-top: 20px; }
.sp-pp-page.wp-block-group .sp-pp-led-note { padding-top: 16px; border-top: 1px solid #333; }
@media (max-width: 781px) {
  .sp-pp-page.wp-block-group .sp-pp-real-system { padding: 20px 0; border-inline: 0; background: #151515; }
  .sp-pp-page.wp-block-group .sp-pp-real-system > .sp-pp-image { margin-inline: -20px; width: calc(100% + 40px); max-width: none; }
  /* 旧横型overview用ルールに隠されていた製品名行も、縦積み表に含める。 */
  .sp-pp-page.wp-block-group .sp-pp-overview-rows.sp-pp-overview-table tr:first-child { display: block; }
  .sp-pp-page.wp-block-group .sp-pp-overview-rows.sp-pp-overview-table tr:last-child td:nth-child(n)::before { content: none; }
  .sp-pp-page.wp-block-group .sp-pp-overview-rows.sp-pp-overview tr { padding: 16px 0; border-bottom: 1px solid #333; }
}
/* REV5: 導入の図、三つの特長、四つの適合確認を同じ読みやすさで整える。 */
.sp-pp-page.wp-block-group h1,
.sp-pp-page.wp-block-group h2,
.sp-pp-page.wp-block-group h3 { word-break: auto-phrase; }
.sp-pp-page.wp-block-group p { text-wrap: pretty; }
.sp-pp-page.wp-block-group .sp-pp-info .sp-pp-catch { font-size: 22px; }
.sp-pp-page.wp-block-group .sp-pp-nav { padding-block: 6px; }
.sp-pp-page.wp-block-group .sp-pp-nav a { display: inline-flex; align-items: center; min-height: 44px; }
.sp-pp-page.wp-block-group .sp-pp-nav-links { justify-content: flex-start; overscroll-behavior-x: contain; }
.sp-pp-page.wp-block-group .sp-pp-nav-links a { min-width: 44px; justify-content: center; font-size: 13px; }
.sp-pp-page.wp-block-group .sp-pp-system { padding: 40px; }
.sp-pp-page.wp-block-group .sp-pp-system > h2 { margin-bottom: 24px; }
.sp-pp-page.wp-block-group .sp-pp-system > p { margin-top: 20px; }
.sp-pp-page.wp-block-group .sp-pp-system > .sp-pp-image { margin-top: 28px; }
.sp-pp-page.wp-block-group .sp-pp-system .sp-pp-image img { max-height: 460px; object-fit: contain; }
.sp-pp-page.wp-block-group .sp-pp-flow {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 36px minmax(0, 1.6fr) 36px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  margin: 28px 0;
}
.sp-pp-page.wp-block-group .sp-pp-flow > * { min-width: 0; margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-flow-node { padding: 22px 14px; border: 1px solid #666; background: #151515; text-align: center; }
.sp-pp-page.wp-block-group .sp-pp-flow-node p { margin: 0 0 8px; font-size: 16px; line-height: 1.65; }
.sp-pp-page.wp-block-group .sp-pp-flow-node p:last-child { margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-flow-label { font-weight: 600; }
.sp-pp-page.wp-block-group .sp-pp-flow-product { border: 2px solid #84afb8; padding-block: 26px; }
.sp-pp-page.wp-block-group .sp-pp-flow-product strong { color: #b9d9de; font-weight: 500; }
.sp-pp-page.wp-block-group .sp-pp-flow-arrow { text-align: center; font-size: 24px; line-height: 1.5; color: #b8b8b8; }
.sp-pp-page.wp-block-group .sp-pp-setup-flow { grid-template-columns: minmax(0,1fr) 112px minmax(0,1.4fr) 112px minmax(0,1fr); }
.sp-pp-page.wp-block-group .sp-pp-setup-flow .sp-pp-flow-arrow { font-size: 14px; }
.sp-pp-page.wp-block-group .sp-pp-reasons { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.sp-pp-page.wp-block-group .sp-pp-reason { min-width: 0; padding: 24px; margin: 0; background: #1d1d1d; }
.sp-pp-page.wp-block-group .sp-pp-reason > .sp-pp-image { margin: -24px -24px 24px; width: calc(100% + 48px); }
.sp-pp-page.wp-block-group .sp-pp-reason > .sp-pp-image img { aspect-ratio: auto; object-fit: contain; }
.sp-pp-page.wp-block-group .sp-pp-reason > .sp-pp-circuit-graphic { aspect-ratio: 4/3; margin: -24px -24px 24px; width: calc(100% + 48px); }
.sp-pp-page.wp-block-group .sp-pp-reason h3 { font-size: 22px; line-height: 1.65; margin-bottom: 16px; }
.sp-pp-page.wp-block-group .sp-pp-reason .sp-pp-eyebrow { font-size: 14px; letter-spacing: .035em; margin-bottom: 12px; }
.sp-pp-page.wp-block-group .sp-pp-check-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; margin: 28px 0; }
.sp-pp-page.wp-block-group .sp-pp-check { min-width: 0; padding: 22px; border-top: 2px solid #84afb8; background: #1d1d1d; }
.sp-pp-page.wp-block-group .sp-pp-check h3 { font-size: 20px; margin-bottom: 12px; }
.sp-pp-page.wp-block-group .sp-pp-check p { margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-callout { padding: 24px 28px; margin: 28px 0; background: #252525; border-left: 3px solid #84afb8; color: #e6e6e6; font-size: 16px; }
.sp-pp-page.wp-block-group .sp-pp-callout p { color: #e6e6e6; font-size: 16px; }
.sp-pp-page.wp-block-group .sp-pp-callout h3 { font-size: 22px; margin-bottom: 16px; }
.sp-pp-page.wp-block-group .sp-pp-selection-caution { border-color: #d4b183; }
.sp-pp-page.wp-block-group .sp-pp-selection { margin-block: 32px; }
.sp-pp-page.wp-block-group .sp-pp-selection h3 { font-size: 22px; }
.sp-pp-page.wp-block-group .sp-pp-selection .sp-pp-label-example { font-size: 28px; color: #e6e6e6; letter-spacing: .02em; }
.sp-pp-page.wp-block-group .sp-pp-polarity-graphic { display: block; width: 100%; max-width: 480px; height: auto; background: #1d1d1d; }
.sp-pp-page.wp-block-group .sp-pp-press-cta,
.sp-pp-page.wp-block-group .sp-pp-purchase-compact { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 24px 28px; margin: 36px 0 56px; border: 1px solid #555; background: #1d1d1d; }
.sp-pp-page.wp-block-group .sp-pp-purchase-compact > p { margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-purchase-compact .sp-pp-actions { flex-shrink: 0; }
.sp-pp-page.wp-block-group .sp-pp-related { margin-bottom: 56px; }
.sp-pp-page.wp-block-group .sp-pp-related > h2 { font-size: 30px; margin-bottom: 24px; }
.sp-pp-page.wp-block-group .sp-pp-related .sp-pp-card-grid { gap: 14px; }
.sp-pp-page.wp-block-group .sp-pp-related .sp-pp-card { padding: 0; }
.sp-pp-page.wp-block-group .sp-pp-related .sp-pp-related-link { padding: 20px; }
.sp-pp-page.wp-block-group .sp-pp-related .sp-pp-type { border: 0; padding: 0; margin-bottom: 10px; font-size: 13px; }
.sp-pp-page.wp-block-group .sp-pp-related h3 { margin: 0 0 10px; font-size: 19px; }
.sp-pp-page.wp-block-group .sp-pp-related p { margin-bottom: 8px; font-size: 14px; }
/* 接続手順に移した既存Jetpackも、元ブロックの移動量を保ったまま表示する。 */
.sp-pp-page.wp-block-group .sp-pp-setup-gallery { margin-top: 24px; }
.sp-pp-page.wp-block-group .sp-pp-setup-gallery .wp-block-jetpack-slideshow { max-width: 100%; margin: 0 0 16px; }
.sp-pp-page.wp-block-group .sp-pp-setup-gallery .wp-block-jetpack-slideshow_container { position: relative; overflow: hidden; background: #1d1d1d; }
.sp-pp-page.wp-block-group .sp-pp-setup-gallery .wp-block-jetpack-slideshow_swiper-wrapper { display: flex; width: 100%; margin: 0; padding: 0; list-style: none; }
.sp-pp-page.wp-block-group .sp-pp-setup-gallery .wp-block-jetpack-slideshow_slide { flex: 0 0 100%; width: 100%; height: auto; aspect-ratio: auto; margin: 0; padding: 0; list-style: none; }
.sp-pp-page.wp-block-group .sp-pp-setup-gallery .wp-block-jetpack-slideshow_slide figure { width: 100%; height: 100%; }
.sp-pp-page.wp-block-group .sp-pp-setup-gallery .wp-block-jetpack-slideshow_image { width: 100%; height: 100%; object-fit: contain; }
.sp-pp-page.wp-block-group .sp-pp-setup-gallery .wp-block-jetpack-slideshow_button-prev,
.sp-pp-page.wp-block-group .sp-pp-setup-gallery .wp-block-jetpack-slideshow_button-next { position: absolute; top: calc(50% - 22px); width: 44px; height: 44px; background: #151515cc; color: #e6e6e6; z-index: 2; }
.sp-pp-page.wp-block-group .sp-pp-setup-gallery .wp-block-jetpack-slideshow_button-prev { left: 0; }
.sp-pp-page.wp-block-group .sp-pp-setup-gallery .wp-block-jetpack-slideshow_button-next { right: 0; }
.sp-pp-page.wp-block-group .sp-pp-setup-gallery .wp-block-jetpack-slideshow_button-prev::before,
.sp-pp-page.wp-block-group .sp-pp-setup-gallery .wp-block-jetpack-slideshow_button-next::before { content: ""; display: block; width: 10px; height: 10px; border-top: 2px solid #e6e6e6; border-right: 2px solid #e6e6e6; transform: rotate(45deg); }
.sp-pp-page.wp-block-group .sp-pp-setup-gallery .wp-block-jetpack-slideshow_button-prev::before { transform: rotate(-135deg); }
.sp-pp-page.wp-block-group .sp-pp-setup-gallery .wp-block-jetpack-slideshow_pagination { position: relative; display: flex; justify-content: center; gap: 8px; min-height: 32px; align-items: center; }
/* REV5で許可されたサイト共通ボタンの例外。この2ページでは通常フローへ戻し、本文を覆わない。可視ラベルを維持する。 */
body:has(.sp-pp-page) #sp-finder .sp-fab { position: static; display: flex; align-items: center; justify-content: center; gap: 6px; width: max-content; min-height: 44px; margin: 16px 12px 16px auto; padding: 8px 12px; font-size: 12px; line-height: 1.4; }
.sp-pp-page.wp-block-group .sp-pp-gallery-cover img { aspect-ratio: auto; }
.sp-pp-page.wp-block-group .sp-pp-flow-direction { display: inline-block; font-size: 24px; line-height: 1; }
.sp-pp-page.wp-block-group .sp-pp-purchase h2 .sp-pp-nb { white-space: nowrap; }
/* 写真を必要とする手順②は、説明の隣に十分な大きさで示す。 */
@media (min-width: 782px) {
  .sp-pp-page.wp-block-group .sp-pp-steps:has(.sp-pp-setup-gallery) .sp-pp-step-grid { grid-template-columns: minmax(0,1fr); max-width: 900px; margin-inline: auto; gap: 28px; }
  .sp-pp-page.wp-block-group .sp-pp-step:has(.sp-pp-setup-gallery) { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 0 40px; align-items: start; }
  .sp-pp-page.wp-block-group .sp-pp-step:has(.sp-pp-setup-gallery) h3 { grid-column: 1; }
  .sp-pp-page.wp-block-group .sp-pp-step:has(.sp-pp-setup-gallery) > p { grid-column: 1; }
  .sp-pp-page.wp-block-group .sp-pp-step:has(.sp-pp-setup-gallery) .sp-pp-setup-gallery { grid-column: 2; grid-row: 1 / 4; margin-top: 0; }
  .sp-pp-page.wp-block-group .sp-pp-setup-gallery .wp-block-jetpack-slideshow_slide { aspect-ratio: auto; }
}
@media (min-width: 782px) and (max-width: 1100px) {
  .admin-bar .sp-pp-page.wp-block-group [id] { scroll-margin-top: 156px; }
}
@media (max-width: 781px) {
  .sp-pp-page.wp-block-group .sp-pp-info .sp-pp-catch { font-size: 21px; }
  .sp-pp-page.wp-block-group .sp-pp-nav-links { gap: 18px; padding-right: 16px; }
  .sp-pp-page.wp-block-group .sp-pp-system { padding: 24px 16px; }
  .sp-pp-page.wp-block-group .sp-pp-real-system > .sp-pp-image { margin-inline: -16px; width: calc(100% + 32px); }
  .sp-pp-page.wp-block-group .sp-pp-flow { grid-template-columns: minmax(0,1fr); gap: 8px; }
  .sp-pp-page.wp-block-group .sp-pp-flow-node { padding: 16px; }
  .sp-pp-page.wp-block-group .sp-pp-flow-node p { font-size: 16px; }
  .sp-pp-page.wp-block-group .sp-pp-flow-arrow { transform: rotate(90deg); line-height: 1; width: 28px; margin-inline: auto; }
  .sp-pp-page.wp-block-group .sp-pp-setup-flow .sp-pp-flow-arrow { transform: none; width: auto; font-size: 14px; line-height: 1.6; }
  .sp-pp-page.wp-block-group .sp-pp-flow-direction { transform: rotate(90deg); }
  .sp-pp-page.wp-block-group .sp-pp-reasons { grid-template-columns: minmax(0,1fr); gap: 24px; }
  .sp-pp-page.wp-block-group .sp-pp-reason { padding: 22px; }
  .sp-pp-page.wp-block-group .sp-pp-reason > .sp-pp-image,
  .sp-pp-page.wp-block-group .sp-pp-reason > .sp-pp-circuit-graphic { width: calc(100% + 44px); margin: -22px -22px 22px; }
  .sp-pp-page.wp-block-group .sp-pp-reason > .sp-pp-image img,
  .sp-pp-page.wp-block-group .sp-pp-reason > .sp-pp-circuit-graphic { aspect-ratio: auto; }
  .sp-pp-page.wp-block-group .sp-pp-check-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .sp-pp-page.wp-block-group .sp-pp-check { padding: 16px 12px; }
  .sp-pp-page.wp-block-group .sp-pp-check h3 { font-size: 18px; }
  .sp-pp-page.wp-block-group .sp-pp-callout { padding: 22px 18px; }
  .sp-pp-page.wp-block-group .sp-pp-press-cta,
  .sp-pp-page.wp-block-group .sp-pp-purchase-compact { flex-direction: column; align-items: stretch; padding: 24px 20px; }
  .sp-pp-page.wp-block-group .sp-pp-related .sp-pp-card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .sp-pp-page.wp-block-group .sp-pp-related:not(.sp-pp-section) { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
  .sp-pp-page.wp-block-group .sp-pp-related > h2 { font-size: 24px; }
  .sp-pp-page.wp-block-group .sp-pp-related .sp-pp-related-link { padding: 16px 12px; }
  .sp-pp-page.wp-block-group .sp-pp-related h3 { font-size: 16px; overflow-wrap: normal; letter-spacing: 0; }
  body:has(.sp-pp-page) #sp-finder .sp-fab { width: 56px; min-height: 56px; padding: 5px; flex-direction: column; gap: 2px; font-size: 10px; text-wrap: balance; }
}
/* REV6: デッキの媒体名・凡例・模式図を既存のカードと写真に組み合わせる。 */
.sp-pp-page.wp-block-group .sp-pp-press .sp-pp-press-media { font-size: clamp(24px, 2.4vw, 32px); font-weight: 600; margin-bottom: 16px; }
.sp-pp-page.wp-block-group .sp-pp-legend-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 24px 0 40px; padding: 0; list-style: none; }
.sp-pp-page.wp-block-group .sp-pp-legend-grid > * { margin: 0; font-size: 16px; }
.sp-pp-page.wp-block-group .sp-pp-internals-full { max-width: none; }
.sp-pp-page.wp-block-group .sp-pp-schematic-flow { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 20px 12px; margin-bottom: 24px; background: #151515; }
.sp-pp-page.wp-block-group .sp-pp-schematic-flow > * { min-width: 0; margin: 0; text-align: center; }
.sp-pp-page.wp-block-group .sp-pp-schematic-flow .sp-pp-flow-arrow { transform: none; width: auto; }
.sp-pp-page.wp-block-group .sp-pp-timing-diagram { padding: 24px 16px; margin-bottom: 24px; background: #151515; }
.sp-pp-page.wp-block-group .sp-pp-timing-row { display: grid; grid-template-columns: 5em minmax(0, 1fr); gap: 16px; align-items: center; margin: 12px 0; }
.sp-pp-page.wp-block-group .sp-pp-timing-row > * { margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-ticks { display: block; height: 32px; background: repeating-linear-gradient(to right, #84afb8 0 2px, transparent 2px 10%); border-bottom: 1px solid #666; }
.sp-pp-page.wp-block-group .sp-pp-ticks-offset { background: linear-gradient(to right, #84afb8 0 2px, transparent 2px 8%, #84afb8 8% calc(8% + 2px), transparent calc(8% + 2px) 21%, #84afb8 21% calc(21% + 2px), transparent calc(21% + 2px) 29%, #84afb8 29% calc(29% + 2px), transparent calc(29% + 2px) 42%, #84afb8 42% calc(42% + 2px), transparent calc(42% + 2px) 50%, #84afb8 50% calc(50% + 2px), transparent calc(50% + 2px) 61%, #84afb8 61% calc(61% + 2px), transparent calc(61% + 2px) 69%, #84afb8 69% calc(69% + 2px), transparent calc(69% + 2px) 82%, #84afb8 82% calc(82% + 2px), transparent calc(82% + 2px) 91%, #84afb8 91% calc(91% + 2px), transparent calc(91% + 2px)); }
.sp-pp-page.wp-block-group .sp-pp-reason > .sp-pp-image img { aspect-ratio: auto; }
.sp-pp-page.wp-block-group .sp-pp-specs .sp-pp-spec-note { font-size: 16px; }
.sp-pp-page.wp-block-group .sp-pp-faq a { overflow-wrap: anywhere; }
@media (max-width: 781px) {
  .sp-pp-page.wp-block-group .sp-pp-legend-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .sp-pp-page.wp-block-group .sp-pp-related .sp-pp-card-grid,
  .sp-pp-page.wp-block-group .sp-pp-related:not(.sp-pp-section) { grid-template-columns: minmax(0, 1fr); }
}
/* REV6: iPower2の小図と、保存済みギャラリーの静的な写真一覧。 */
.sp-pp-page.wp-block-group .sp-pp-ipower-hero .sp-pp-gallery-cover { border: 0; background: transparent; }
.sp-pp-page.wp-block-group .sp-pp-ipower-hero .sp-pp-gallery-cover img { padding: 0; aspect-ratio: auto; }
.sp-pp-page.wp-block-group .sp-pp-brand-badge { margin-top: 16px; padding: 14px 16px; border: 1px solid #555; }
.sp-pp-page.wp-block-group .sp-pp-reason-front > .sp-pp-image img { object-fit: cover; }
.sp-pp-page.wp-block-group .sp-pp-voltage-visual { display: grid; grid-template-columns: 1.4fr 1fr; align-items: center; gap: 12px; aspect-ratio: 16/9; margin: -24px -24px 24px; padding: 20px; background: #151515; }
.sp-pp-page.wp-block-group .sp-pp-voltage-visual .sp-pp-image { margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-voltage-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.sp-pp-page.wp-block-group .sp-pp-voltage-tile { margin: 0; padding: 8px 2px; border: 1px solid #84afb8; font-size: 22px; text-align: center; white-space: nowrap; }
.sp-pp-page.wp-block-group .sp-pp-use-band { margin-top: 40px; padding-block: 28px; border-block: 1px solid #333; }
.sp-pp-page.wp-block-group .sp-pp-stat-tile { max-width: 780px; padding: 36px; margin: 40px auto 0; border: 1px solid #84afb8; background: #1d1d1d; }
.sp-pp-page.wp-block-group .sp-pp-stat-number { font-size: clamp(26px, 3vw, 40px); line-height: 1.5; }
.sp-pp-page.wp-block-group .sp-pp-plug-diagram { padding: 20px; margin-bottom: 24px; background: #1d1d1d; text-align: center; }
.sp-pp-page.wp-block-group .sp-pp-plug-ring { width: 92px; height: 92px; margin: 0 auto 20px; border: 3px solid #e6e6e6; border-radius: 50%; display: grid; place-items: center; }
.sp-pp-page.wp-block-group .sp-pp-plug-ring::after { content: ""; width: 36px; height: 36px; border: 3px solid #84afb8; border-radius: 50%; }
.sp-pp-page.sp-pp-ipower2 .sp-pp-steps .sp-pp-setup-flow { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; }
.sp-pp-page.wp-block-group .sp-pp-static-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 24px; margin-top: 32px; }
.sp-pp-page.wp-block-group .sp-pp-static-gallery .wp-block-jetpack-slideshow,
.sp-pp-page.wp-block-group .sp-pp-static-gallery .wp-block-jetpack-slideshow_container,
.sp-pp-page.wp-block-group .sp-pp-static-gallery .wp-block-jetpack-slideshow_swiper-wrapper,
.sp-pp-page.wp-block-group .sp-pp-gallery-captions { display: contents; }
/* テーマのSwiperがslideへinline幅と余白を強制するため、静的一覧の範囲だけ解除する。 */
.sp-pp-page.wp-block-group .sp-pp-static-gallery .wp-block-jetpack-slideshow_slide { width: auto !important; margin: 0 !important; min-width: 0; list-style: none; grid-row: 1; }
.sp-pp-page.wp-block-group .sp-pp-static-gallery .wp-block-jetpack-slideshow_slide figure { margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-static-gallery .wp-block-jetpack-slideshow_image { width: 100%; aspect-ratio: auto; height: auto; object-fit: contain; background: #1d1d1d; }
.sp-pp-page.wp-block-group .sp-pp-static-gallery .wp-block-jetpack-slideshow_slide:nth-child(1),
.sp-pp-page.wp-block-group .sp-pp-gallery-captions > :nth-child(1) { grid-column: 1; }
.sp-pp-page.wp-block-group .sp-pp-static-gallery .wp-block-jetpack-slideshow_slide:nth-child(2),
.sp-pp-page.wp-block-group .sp-pp-gallery-captions > :nth-child(2) { grid-column: 2; }
.sp-pp-page.wp-block-group .sp-pp-static-gallery .wp-block-jetpack-slideshow_slide:nth-child(3),
.sp-pp-page.wp-block-group .sp-pp-gallery-captions > :nth-child(3) { grid-column: 3; }
.sp-pp-page.wp-block-group .sp-pp-gallery-captions > p { grid-row: 2; margin: 0; }
.sp-pp-page.wp-block-group .sp-pp-static-gallery > p { grid-column: 1 / -1; margin-top: 12px; }
.sp-pp-page.wp-block-group .sp-pp-static-gallery .wp-block-jetpack-slideshow_button-prev,
.sp-pp-page.wp-block-group .sp-pp-static-gallery .wp-block-jetpack-slideshow_button-next,
.sp-pp-page.wp-block-group .sp-pp-static-gallery .wp-block-jetpack-slideshow_button-pause,
.sp-pp-page.wp-block-group .sp-pp-static-gallery .wp-block-jetpack-slideshow_pagination { display: none; }
@media (max-width: 781px) {
  .sp-pp-page.wp-block-group .sp-pp-voltage-visual { margin: -22px -22px 22px; }
  .sp-pp-page.wp-block-group .sp-pp-stat-tile { padding: 24px 20px; }
  .sp-pp-page.sp-pp-ipower2 .sp-pp-steps .sp-pp-setup-flow { gap: 8px; }
  .sp-pp-page.sp-pp-ipower2 .sp-pp-steps .sp-pp-setup-flow .sp-pp-flow-node { padding: 12px 6px; }
  .sp-pp-page.sp-pp-ipower2 .sp-pp-steps .sp-pp-setup-flow p { font-size: 14px; }
  .sp-pp-page.wp-block-group .sp-pp-static-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .sp-pp-page.wp-block-group .sp-pp-static-gallery .wp-block-jetpack-slideshow_slide:nth-child(3) { grid-row: 3; grid-column: 1; }
  .sp-pp-page.wp-block-group .sp-pp-gallery-captions > :nth-child(3) { grid-row: 4; grid-column: 1; }
}


/* ROLL1: 共通部品の追加。pilotの規則は残し、追加ページだけに適用する。 */
.sp-pp-rollout.wp-block-group .sp-pp-roll-grid { display:grid; gap:24px; margin-block:28px 40px; }
.sp-pp-rollout.wp-block-group .sp-pp-roll-grid-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.sp-pp-rollout.wp-block-group .sp-pp-roll-grid-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.sp-pp-rollout.wp-block-group .sp-pp-roll-grid > * { min-width:0; margin:0; }
.sp-pp-rollout.wp-block-group .sp-pp-roll-grid .sp-pp-feature-text,
.sp-pp-rollout.wp-block-group .sp-pp-roll-grid .sp-pp-stat { padding:24px; background:#1d1d1d; border-top:1px solid #555; }
.sp-pp-rollout.wp-block-group .sp-pp-stat { margin-block:32px; padding:32px; border:1px solid #84afb8; }
.sp-pp-rollout.wp-block-group .sp-pp-stat-value { font-size:clamp(28px,3.2vw,44px); line-height:1.4; color:#b1d0d4; }
.sp-pp-rollout.wp-block-group .sp-pp-roll-flow { display:flex; flex-wrap:wrap; align-items:stretch; justify-content:center; gap:12px; margin-block:24px; }
.sp-pp-rollout.wp-block-group .sp-pp-roll-flow .sp-pp-flow-node { flex:1 1 120px; min-width:0; padding:20px 16px; }
.sp-pp-rollout.wp-block-group .sp-pp-roll-flow .sp-pp-flow-arrow { align-self:center; flex:0 0 auto; margin:0; }
.sp-pp-rollout.wp-block-group .sp-pp-roll-diagram { padding:24px; border:1px solid #555; background:#1d1d1d; margin-block:24px; }
.sp-pp-rollout.wp-block-group .sp-pp-timing-row { grid-template-columns:minmax(0,1fr); gap:8px; }
.sp-pp-rollout.wp-block-group .sp-pp-timing-row .sp-pp-ticks { width:100%; }
.sp-pp-rollout.wp-block-group .sp-pp-card-image img { width:100%; height:auto; aspect-ratio:auto; object-fit:contain; }
.sp-pp-rollout.wp-block-group .sp-pp-image { margin-block:24px; }
.sp-pp-rollout.wp-block-group .sp-pp-image img { display:block; width:100%; max-height:680px; object-fit:contain; }
.sp-pp-rollout.wp-block-group .sp-pp-hero-photo { margin:0 0 20px; }
.sp-pp-rollout.wp-block-group .sp-pp-hero-photo img { aspect-ratio:auto; }
.sp-pp-rollout.wp-block-group .sp-pp-reason > .sp-pp-image { margin:-24px -24px 24px; }
.sp-pp-rollout.wp-block-group .sp-pp-reason > .sp-pp-image img { max-height:260px; }
.sp-pp-rollout.wp-block-group .sp-pp-photo-caption { margin-top:12px; }
.sp-pp-rollout.wp-block-group .sp-pp-warning { padding:20px; border:1px solid #b8b8b8; }
.sp-pp-rollout.wp-block-group .sp-pp-roll-table { overflow-x:auto; }
.sp-pp-rollout.wp-block-group .sp-pp-roll-table table { width:100%; border-collapse:collapse; }
.sp-pp-rollout.wp-block-group .sp-pp-roll-table td,
.sp-pp-rollout.wp-block-group .sp-pp-roll-table th { padding:18px 14px; text-align:left; vertical-align:top; border:0; border-bottom:1px solid #444; background:transparent; color:inherit; }
.sp-pp-rollout.wp-block-group .sp-pp-roll-table .sp-pp-spec-note { display:block; margin-top:10px; color:#b8b8b8; font-size:16px; }
.sp-pp-rollout.wp-block-group .sp-pp-overview-table .sp-pp-jan { white-space:nowrap; }
.sp-pp-rollout.wp-block-group .sp-pp-nav-links { justify-content:flex-start; min-height:44px; }
.sp-pp-rollout.wp-block-group .sp-pp-nav-links a { display:inline-flex; align-items:center; min-height:44px; }
.sp-pp-rollout.wp-block-group .sp-pp-hero .wp-block-themeisle-blocks-slider { width:100%; height:auto; min-height:0; }
.sp-pp-rollout.wp-block-group .sp-pp-hero .glide__track { overflow:hidden; }
.sp-pp-rollout.wp-block-group .sp-pp-hero .glide__slides { display:flex; align-items:center; gap:0; padding:0; margin:0; }
.sp-pp-rollout.wp-block-group .sp-pp-hero .glide__slide { flex:0 0 100%; min-width:0; margin:0; }
.sp-pp-rollout.wp-block-group .sp-pp-hero .glide__slide img { width:100%; height:auto; aspect-ratio:auto; object-fit:contain; }
.sp-pp-rollout.wp-block-group .sp-pp-hero .glide__bullets { display:flex; justify-content:center; gap:10px; padding:12px; }
.sp-pp-rollout.wp-block-group .sp-pp-hero .glide__bullet { width:10px; height:10px; border:1px solid #aaa; border-radius:50%; background:#444; padding:0; }
.sp-pp-rollout.wp-block-group .sp-pp-press .sp-pp-quote-card { max-width:940px; margin-inline:auto; }
@media (max-width:781px) {
  .sp-pp-rollout.wp-block-group .sp-pp-roll-grid-2,
  .sp-pp-rollout.wp-block-group .sp-pp-roll-grid-3 { grid-template-columns:minmax(0,1fr); gap:20px; }
  .sp-pp-rollout.wp-block-group .sp-pp-roll-flow { flex-direction:column; }
  .sp-pp-rollout.wp-block-group .sp-pp-roll-flow .sp-pp-flow-node { flex-basis:auto; }
  .sp-pp-rollout.wp-block-group .sp-pp-roll-flow .sp-pp-flow-arrow { width:auto; max-width:100%; transform:none; font-size:16px; }
  .sp-pp-rollout.wp-block-group .sp-pp-roll-table table,
  .sp-pp-rollout.wp-block-group .sp-pp-roll-table tbody,
  .sp-pp-rollout.wp-block-group .sp-pp-roll-table tr,
  .sp-pp-rollout.wp-block-group .sp-pp-roll-table td { display:block; width:100%; }
  .sp-pp-rollout.wp-block-group .sp-pp-roll-table tr { padding-block:12px; border-bottom:1px solid #444; }
  .sp-pp-rollout.wp-block-group .sp-pp-roll-table td { border:0; padding:4px 0; overflow-wrap:anywhere; }
  .sp-pp-rollout.wp-block-group .sp-pp-roll-table td:first-child { font-weight:600; color:#d3d3d3; }
  .sp-pp-rollout.wp-block-group .sp-pp-roll-table thead { display:none; }
  .sp-pp-rollout.wp-block-group .sp-pp-reason > .sp-pp-image { margin:-22px -22px 22px; }
}
/* ROLL2: shared component corrections. */
.sp-pp-page.wp-block-group {
  line-break: strict;
  word-break: auto-phrase;
  text-wrap: pretty;
}
@supports not (word-break: auto-phrase) {
  .sp-pp-page.wp-block-group { word-break: normal; }
}
.sp-pp-page.wp-block-group h1,
.sp-pp-page.wp-block-group h2,
.sp-pp-page.wp-block-group h3 { text-wrap: balance; }
.sp-pp-page.wp-block-group * { letter-spacing: min(.04em, 0.04em); }
.sp-pp-page.wp-block-group .sp-pp-note,
.sp-pp-page.wp-block-group figcaption,
.sp-pp-page.wp-block-group .sp-pp-photo-caption,
.sp-pp-page.wp-block-group .sp-pp-spec-note {
  font-size: 13px;
  color: #b8b8b8;
}

/* Hero sliders inherit large inline data-height values from the old blocks.
   The component owns its aspect ratio so no blank 600–800px panel remains. */
.sp-pp-page.wp-block-group .sp-pp-hero .wp-block-themeisle-blocks-slider,
.sp-pp-page.wp-block-group .sp-pp-hero .wp-block-themeisle-blocks-slider .glide__track,
.sp-pp-page.wp-block-group .sp-pp-hero .wp-block-themeisle-blocks-slider .glide__slides {
  height: auto !important;
  min-height: 0;
}
.sp-pp-page.wp-block-group .sp-pp-hero .wp-block-themeisle-blocks-slider .glide__slide {
  min-height: 0;
  aspect-ratio: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #1d1d1d;
}
.sp-pp-page.wp-block-group .sp-pp-hero .wp-block-themeisle-blocks-slider img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* The visible product tables are the only table components in ROLL2. */
.sp-pp-page.wp-block-group .sp-pp-overview-table table,
.sp-pp-page.wp-block-group .sp-pp-specs table,
.sp-pp-page.wp-block-group .sp-pp-roll-table table {
  table-layout: auto;
}
.sp-pp-page.wp-block-group .sp-pp-overview-table .sp-pp-jan,
.sp-pp-page.wp-block-group .sp-pp-jan {
  white-space: nowrap;
  word-break: keep-all;
  overflow-wrap: normal;
}

/* FAQ questions and markers occupy separate grid columns. */
.sp-pp-page.wp-block-group .sp-pp-faq summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 32px;
  gap: 12px;
  align-items: start;
  padding-inline-end: 0;
}
.sp-pp-page.wp-block-group .sp-pp-faq-question {
  min-width: 0;
  overflow-wrap: normal;
  word-break: auto-phrase;
}
.sp-pp-page.wp-block-group .sp-pp-faq-marker {
  display: grid;
  place-items: center;
  min-width: 32px;
  min-height: 32px;
  color: transparent;
  font-size: 0;
  line-height: 1;
}
.sp-pp-page.wp-block-group .sp-pp-faq-marker::before {
  content: "+";
  color: #e6e6e6;
  font-size: 22px;
  font-weight: 300;
}
.sp-pp-page.wp-block-group .sp-pp-faq-item[open] .sp-pp-faq-marker::before { content: "−"; }
.sp-pp-page.wp-block-group .sp-pp-faq summary::after { display: none; }

/* Every feature-card image uses the same dark, contain frame. */
.sp-pp-page.wp-block-group .sp-pp-reason > .sp-pp-card-image,
.sp-pp-page.wp-block-group .sp-pp-reason > .sp-pp-image:first-child {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: auto;
  background: #1d1d1d;
  overflow: hidden;
}
.sp-pp-page.wp-block-group .sp-pp-reason > .sp-pp-card-image img,
.sp-pp-page.wp-block-group .sp-pp-reason > .sp-pp-image:first-child img {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: contain;
  background: #1d1d1d;
}

/* Sticky navigation remains reachable at phone width, with a soft edge fade. */
.sp-pp-page.wp-block-group .sp-pp-nav-links {
  position: relative;
  justify-content: flex-start;
  overflow-x: auto;
  overflow-y: hidden;
  white-space: nowrap;
  scroll-snap-type: x proximity;
  scroll-padding-inline: 12px;
  -webkit-overflow-scrolling: touch;
  padding-inline: 0 48px;
  mask-image: linear-gradient(to right, transparent 0, #000 14px, #000 calc(100% - 28px), transparent 100%);
}
.sp-pp-page.wp-block-group .sp-pp-nav-links::after {
  content: "";
  position: absolute;
  inset: 0 0 0 auto;
  width: 32px;
  pointer-events: none;
  background: linear-gradient(to right, transparent, #151515);
}
.sp-pp-page.wp-block-group .sp-pp-nav-links a {
  min-width: 44px;
  min-height: 44px;
  padding-inline: 8px;
  scroll-snap-align: start;
  white-space: nowrap;
}

/* Flow labels are atomic phrases.  Desktop stays one clean row; phone
   layouts stack nodes and use a vertical arrow between them. */
.sp-pp-page.wp-block-group .sp-pp-flow-label {
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: keep-all;
  text-wrap: nowrap;
}
.sp-pp-page.wp-block-group .sp-pp-roll-flow {
  flex-wrap: nowrap;
  align-items: stretch;
}
.sp-pp-page.wp-block-group .sp-pp-roll-flow .sp-pp-flow-node {
  flex: 1 1 0;
}
.sp-pp-page.wp-block-group .sp-pp-flow-node { min-width: 0; }

@media (max-width: 781px) {
  .sp-pp-page.wp-block-group .sp-pp-overview-table table,
  .sp-pp-page.wp-block-group .sp-pp-overview-table tbody,
  .sp-pp-page.wp-block-group .sp-pp-overview-table tr,
  .sp-pp-page.wp-block-group .sp-pp-overview-table td,
  .sp-pp-page.wp-block-group .sp-pp-overview-table th {
    display: block;
    width: 100%;
    table-layout: auto;
  }
  .sp-pp-page.wp-block-group .sp-pp-overview-table thead { display: none; }
  .sp-pp-page.wp-block-group .sp-pp-overview-table tr,
  .sp-pp-page.wp-block-group .sp-pp-overview-table tr:first-child {
    display: block;
    padding-block: 16px;
    border-bottom: 1px solid #333;
  }
  .sp-pp-page.wp-block-group .sp-pp-overview-table td,
  .sp-pp-page.wp-block-group .sp-pp-overview-table th {
    padding: 4px 0;
    border: 0;
    overflow-wrap: normal;
  }
  .sp-pp-page.wp-block-group .sp-pp-overview-table td:first-child,
  .sp-pp-page.wp-block-group .sp-pp-overview-table th:first-child {
    color: #b8b8b8;
    font-size: 14px;
  }
  .sp-pp-page.wp-block-group .sp-pp-flow,
  .sp-pp-page.wp-block-group .sp-pp-roll-flow,
  .sp-pp-page.wp-block-group .sp-pp-setup-flow {
    display: flex !important;
    flex-direction: column;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 8px;
  }
  .sp-pp-page.wp-block-group .sp-pp-flow .sp-pp-flow-node,
  .sp-pp-page.wp-block-group .sp-pp-roll-flow .sp-pp-flow-node,
  .sp-pp-page.wp-block-group .sp-pp-setup-flow .sp-pp-flow-node {
    width: 100%;
    flex: 0 0 auto;
  }
  .sp-pp-page.wp-block-group .sp-pp-flow .sp-pp-flow-arrow,
  .sp-pp-page.wp-block-group .sp-pp-roll-flow .sp-pp-flow-arrow {
    width: 100%;
    transform: none;
    font-size: 0;
    line-height: 1;
  }
  .sp-pp-page.wp-block-group .sp-pp-flow .sp-pp-flow-arrow::after,
  .sp-pp-page.wp-block-group .sp-pp-roll-flow .sp-pp-flow-arrow::after {
    content: "↓";
    font-size: 22px;
  }
  .sp-pp-page.wp-block-group .sp-pp-setup-flow .sp-pp-flow-arrow {
    width: 100%;
    transform: none;
    font-size: 0;
  }
  .sp-pp-page.wp-block-group .sp-pp-setup-flow .sp-pp-flow-arrow::after { content: "↓"; font-size: 22px; }
}

/* ROLL3: 長い図解ラベルは句読点・空白を優先して折り返し、親幅を越えない。 */
.sp-pp-page.wp-block-group .sp-pp-flow,
.sp-pp-page.wp-block-group .sp-pp-roll-flow,
.sp-pp-page.wp-block-group .sp-pp-roll-grid,
.sp-pp-page.wp-block-group .sp-pp-feature-text,
.sp-pp-page.wp-block-group .sp-pp-schematic,
.sp-pp-page.wp-block-group .sp-pp-timing-diagram {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.sp-pp-page.wp-block-group .sp-pp-flow > *,
.sp-pp-page.wp-block-group .sp-pp-roll-flow > *,
.sp-pp-page.wp-block-group .sp-pp-roll-grid > *,
.sp-pp-page.wp-block-group .sp-pp-feature-text > *,
.sp-pp-page.wp-block-group .sp-pp-schematic > *,
.sp-pp-page.wp-block-group .sp-pp-timing-diagram > * {
  min-width: 0;
  max-width: 100%;
}
.sp-pp-page.wp-block-group .sp-pp-flow-label,
.sp-pp-page.wp-block-group .sp-pp-schematic .sp-pp-flow-label,
.sp-pp-page.wp-block-group .sp-pp-timing-diagram .sp-pp-flow-label {
  white-space: normal;
  word-break: auto-phrase;
  overflow-wrap: anywhere;
  text-wrap: pretty;
  max-width: 100%;
  min-width: 0;
}
.sp-pp-page.wp-block-group .sp-pp-nb,
.sp-pp-page.wp-block-group .sp-pp-jan {
  white-space: nowrap;
  word-break: keep-all;
  overflow-wrap: normal;
}
.sp-pp-page.wp-block-group .sp-pp-flow-node,
.sp-pp-page.wp-block-group .sp-pp-flow-node p,
.sp-pp-page.wp-block-group .sp-pp-flow-arrow {
  min-width: 0;
  max-width: 100%;
}
.sp-pp-page.wp-block-group .sp-pp-roll-flow {
  flex-wrap: nowrap;
  justify-content: stretch;
}
.sp-pp-page.wp-block-group .sp-pp-roll-flow .sp-pp-flow-node {
  flex: 1 1 0;
  min-width: 0;
  width: auto;
}
.sp-pp-page.wp-block-group .sp-pp-roll-flow .sp-pp-flow-arrow {
  flex: 0 1 14rem;
  width: auto;
  min-width: 0;
  white-space: normal;
  word-break: auto-phrase;
  overflow-wrap: anywhere;
  text-wrap: pretty;
}

@media (max-width: 781px) {
  .sp-pp-page.wp-block-group .sp-pp-flow,
  .sp-pp-page.wp-block-group .sp-pp-roll-flow,
  .sp-pp-page.wp-block-group .sp-pp-setup-flow {
    display: flex !important;
    width: 100%;
    max-width: 100%;
    flex-direction: column;
    flex-wrap: nowrap;
  }
  .sp-pp-page.wp-block-group .sp-pp-flow-node,
  .sp-pp-page.wp-block-group .sp-pp-roll-flow .sp-pp-flow-node,
  .sp-pp-page.wp-block-group .sp-pp-setup-flow .sp-pp-flow-node {
    width: 100%;
    max-width: 100%;
    flex: 0 0 auto;
  }
  .sp-pp-page.wp-block-group .sp-pp-roll-flow .sp-pp-flow-arrow {
    width: 100%;
    max-width: 100%;
    flex: 0 0 auto;
  }
}

/* ROLL3: static hero gallery used in place of the zero-width Glide slider. */
.sp-pp-page.wp-block-group .sp-pp-hero > .sp-pp-gallery {
  min-width: 0;
  max-width: 100%;
}
.sp-pp-page.wp-block-group .sp-pp-gallery > .sp-pp-hero-main {
  width: 100%;
  max-width: 100%;
  margin: 0;
  background: #1d1d1d;
}
.sp-pp-page.wp-block-group .sp-pp-gallery > .sp-pp-hero-main img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
  padding: 2%;
}
.sp-pp-page.wp-block-group .sp-pp-gallery-thumbs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(48px, 1fr));
  gap: 8px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: 12px 0 0;
}
.sp-pp-page.wp-block-group .sp-pp-gallery-thumbs > .sp-pp-gallery-thumb {
  min-width: 0;
  max-width: 100%;
  margin: 0;
  background: #1d1d1d;
}
.sp-pp-page.wp-block-group .sp-pp-gallery-thumbs > .sp-pp-gallery-thumb img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
  padding: 2%;
}



/* ROLL4: real overview labels, intrinsic photo sizing, and non-collapsing flows. */
.sp-pp-page.wp-block-group table td::before,
.sp-pp-page.wp-block-group table th::before,
.sp-pp-page.wp-block-group .sp-pp-overview-table td::before,
.sp-pp-page.wp-block-group .sp-pp-overview-table th::before {
  content: none !important;
  display: none !important;
}
.sp-pp-page.wp-block-group .sp-pp-overview-table tr:first-child {
  display: table-row;
}
.sp-pp-page.wp-block-group .sp-pp-overview-list {
  margin: 0;
  padding: 0;
}
.sp-pp-page.wp-block-group .sp-pp-overview-list > div {
  display: grid;
  grid-template-columns: minmax(7em, 12em) minmax(0, 1fr);
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px solid #333;
}
.sp-pp-page.wp-block-group .sp-pp-overview-list dt {
  color: #b8b8b8;
  font-weight: 600;
}
.sp-pp-page.wp-block-group .sp-pp-overview-list dd { margin: 0; min-width: 0; }

/* A node owns at least a readable phrase width.  When the parent card is
   narrower than a complete row, the container query switches to a vertical
   flow so arrows cannot become orphaned between squeezed nodes. */
.sp-pp-page.wp-block-group .sp-pp-flow,
.sp-pp-page.wp-block-group .sp-pp-roll-flow,
.sp-pp-page.wp-block-group .sp-pp-setup-flow {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  min-width: 0;
  max-width: 100%;
  container-type: inline-size;
}
.sp-pp-page.wp-block-group .sp-pp-flow-node,
.sp-pp-page.wp-block-group .sp-pp-roll-flow .sp-pp-flow-node,
.sp-pp-page.wp-block-group .sp-pp-setup-flow .sp-pp-flow-node {
  flex: 1 1 120px;
  min-width: 120px;
  max-width: 100%;
  overflow-wrap: anywhere;
}
.sp-pp-page.wp-block-group .sp-pp-flow-label,
.sp-pp-page.wp-block-group .sp-pp-flow-node p {
  min-width: 0;
  max-width: 100%;
  white-space: normal;
  word-break: auto-phrase;
  overflow-wrap: anywhere;
  text-wrap: pretty;
}
.sp-pp-page.wp-block-group .sp-pp-visual,
.sp-pp-page.wp-block-group .sp-pp-feature-text,
.sp-pp-page.wp-block-group .sp-pp-callout {
  container-type: inline-size;
}
@container (max-width: 700px) {
  .sp-pp-page.wp-block-group .sp-pp-flow,
  .sp-pp-page.wp-block-group .sp-pp-roll-flow,
  .sp-pp-page.wp-block-group .sp-pp-setup-flow {
    flex-direction: column;
    flex-wrap: nowrap;
  }
  .sp-pp-page.wp-block-group .sp-pp-flow-node,
  .sp-pp-page.wp-block-group .sp-pp-roll-flow .sp-pp-flow-node,
  .sp-pp-page.wp-block-group .sp-pp-setup-flow .sp-pp-flow-node {
    width: 100%;
    min-width: 72px;
    flex: 0 0 auto;
  }
  .sp-pp-page.wp-block-group .sp-pp-flow-arrow,
  .sp-pp-page.wp-block-group .sp-pp-roll-flow .sp-pp-flow-arrow,
  .sp-pp-page.wp-block-group .sp-pp-setup-flow .sp-pp-flow-arrow {
    width: 100%;
    max-width: 100%;
    flex: 0 0 auto;
    transform: none;
  }
}

/* Content photos use their intrinsic dimensions.  No fixed ratio is allowed
   to manufacture letterbox bands on a phone. */
.sp-pp-page.wp-block-group .sp-pp-image,
.sp-pp-page.wp-block-group .sp-pp-image img,
.sp-pp-page.wp-block-group .sp-pp-card-image,
.sp-pp-page.wp-block-group .sp-pp-card-image img,
.sp-pp-page.wp-block-group .sp-pp-hero-photo,
.sp-pp-page.wp-block-group .sp-pp-hero-photo img,
.sp-pp-page.wp-block-group .sp-pp-gallery-cover,
.sp-pp-page.wp-block-group .sp-pp-gallery-cover img,
.sp-pp-page.wp-block-group .sp-pp-gallery-thumb img,
.sp-pp-page.wp-block-group .sp-pp-gallery > .sp-pp-hero-main img {
  aspect-ratio: auto !important;
}
.sp-pp-page.wp-block-group .sp-pp-image img,
.sp-pp-page.wp-block-group .sp-pp-card-image img,
.sp-pp-page.wp-block-group .sp-pp-hero-photo img,
.sp-pp-page.wp-block-group .sp-pp-gallery-cover img,
.sp-pp-page.wp-block-group .sp-pp-gallery-thumb img,
.sp-pp-page.wp-block-group .sp-pp-gallery > .sp-pp-hero-main img {
  width: 100%;
  height: auto !important;
  object-fit: contain;
  max-height: none;
}
.sp-pp-page.wp-block-group .wp-block-jetpack-slideshow_slide,
.sp-pp-page.wp-block-group .wp-block-jetpack-slideshow_slide figure,
.sp-pp-page.wp-block-group .wp-block-themeisle-blocks-slider .glide__slide {
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
}
.sp-pp-page.wp-block-group .wp-block-jetpack-slideshow_image,
.sp-pp-page.wp-block-group .wp-block-themeisle-blocks-slider img {
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  object-fit: contain;
}
.sp-pp-page.wp-block-group .sp-pp-reason > .sp-pp-image,
.sp-pp-page.wp-block-group .sp-pp-reason > .sp-pp-card-image {
  overflow: visible;
  background: #1d1d1d;
}

/* The finder control is a label-sized pill at every breakpoint. */
body:has(.sp-pp-page) #sp-finder .sp-fab {
  width: max-content !important;
  min-width: max-content !important;
  white-space: nowrap !important;
  text-wrap: nowrap !important;
  flex-direction: row !important;
  border-radius: 999px;
}

/* Keep the LAN iPurifier Pro mechanism cards balanced on desktop. */
.sp-pp-page:has(.sp-pp-internals-full) .sp-pp-mechanism > .sp-pp-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: 40px;
}
.sp-pp-page:has(.sp-pp-internals-full) .sp-pp-mechanism > .sp-pp-row > * {
  min-width: 0;
  width: auto;
}
.sp-pp-page:has(.sp-pp-internals-full) .sp-pp-mechanism > .sp-pp-feature-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
}
.sp-pp-lan-ipurifier-pro .sp-pp-mechanism > .sp-pp-row > .sp-pp-visual {
  display: none;
}
.sp-pp-lan-ipurifier-pro .sp-pp-mechanism > .sp-pp-row > .sp-pp-copy {
  grid-column: 1 / -1;
  max-width: 900px;
  justify-self: center;
}
@media (max-width: 781px) {
  .sp-pp-page.wp-block-group .sp-pp-overview-list > div { grid-template-columns: 1fr; gap: 4px; }
  .sp-pp-page:has(.sp-pp-internals-full) .sp-pp-mechanism > .sp-pp-row { grid-template-columns: 1fr; gap: 20px; }
  .sp-pp-page:has(.sp-pp-internals-full) .sp-pp-mechanism > .sp-pp-feature-grid { grid-template-columns: 1fr; }
  .sp-pp-page.wp-block-group .sp-pp-overview-table:not(:has(thead)) tr,
  .sp-pp-page.wp-block-group .sp-pp-overview-table:not(:has(thead)) tr:first-child {
    display: block !important;
  }
}

/* Multi-model overviews keep their real column headings on a narrow screen;
   the table itself scrolls instead of falling back to generated labels. */
@media (max-width: 781px) {
  .sp-pp-page .sp-pp-overview-table:has(thead) {
    overflow-x: auto;
  }
  .sp-pp-page .sp-pp-overview-table:has(thead) table {
    display: table !important;
    min-width: 640px;
  }
  .sp-pp-page .sp-pp-overview-table:has(thead) thead {
    display: table-header-group !important;
  }
  .sp-pp-page .sp-pp-overview-table:has(thead) tbody {
    display: table-row-group !important;
  }
  .sp-pp-page .sp-pp-overview-table:has(thead) tr {
    display: table-row !important;
  }
  .sp-pp-page .sp-pp-overview-table:has(thead) th,
  .sp-pp-page .sp-pp-overview-table:has(thead) td {
    display: table-cell !important;
    width: auto !important;
  }
}
/* WP lazy img[sizes=auto] gets a UA `contain:size !important` (+ 3000x1500 intrinsic size), which authors cannot override.
   Give the box its ratio from the width/height attributes instead, so contained images size correctly (2026-10-13). */
html body .sp-pp-page.wp-block-group img[width][height] { aspect-ratio: attr(width type(<number>)) / attr(height type(<number>)) !important; height: auto !important; }

/* R4: compact accessory checklist and selectable setup badges. */
.sp-pp-page.wp-block-group .sp-pp-overview-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin: 0 0 36px;
}
.sp-pp-page.wp-block-group .sp-pp-overview-product {
  min-width: 0;
  padding: 20px 22px;
  border: 1px solid #333;
  background: #1d1d1d;
}
.sp-pp-page.wp-block-group .sp-pp-overview-product .sp-pp-overview-list > div {
  grid-template-columns: minmax(6em, 9em) minmax(0, 1fr);
}
.sp-pp-page.wp-block-group .sp-pp-compact-checklist {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px 24px;
  margin: 16px 0 28px;
  padding: 12px 16px;
  border: 1px solid #333;
}
.sp-pp-page.wp-block-group .sp-pp-compact-checklist li {
  min-width: 0;
  padding: 4px 0 4px 24px;
  border: 0;
  line-height: 1.65;
}
.sp-pp-page.wp-block-group .sp-pp-compact-checklist li::before { top: 4px; }
.sp-pp-page.wp-block-group .sp-pp-flow-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.55em;
  height: 1.55em;
  margin-right: .25em;
  border: 1px solid #888;
  border-radius: 50%;
  color: #e6e6e6;
  font-size: .9em;
  line-height: 1;
  vertical-align: middle;
}
.sp-pp-page.wp-block-group .sp-pp-setup-flow .sp-pp-flow-arrow {
  white-space: nowrap;
  font-size: 14px;
}
@media (max-width: 781px) {
  .sp-pp-page.wp-block-group .sp-pp-overview-cards { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .sp-pp-page.wp-block-group .sp-pp-compact-checklist { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .sp-pp-page.wp-block-group .sp-pp-setup-flow .sp-pp-flow-arrow {
    width: 100%;
    font-size: 14px !important;
    white-space: normal;
  }
  .sp-pp-page.wp-block-group .sp-pp-setup-flow .sp-pp-flow-arrow::after { content: none !important; }
}
/* rew-r5: OMNI LAN rear photos are transparent A4 canvases; crop to the product */
html body .sp-pp-page.wp-block-group .sp-pp-real-photo img[src*="OMNI-LAN_w_02"] { aspect-ratio: 4.6 / 1 !important; width: 100% !important; height: auto !important; object-fit: cover !important; object-position: 50% 51% !important; }
html body .sp-pp-page.wp-block-group figure.sp-pp-real-photo:has(img[src*="OMNI-LAN_w_12"]) { max-width: 440px !important; margin-inline: auto !important; }
/* /sp-pp2026 */