/**
 * 製品・キャンペーンページ
 */

.product-detail-section.site-inner {
    padding-top: 0;
}

/* 製品サブタブ — ヘッダー内に移設したため、単独 sticky は不要 */
.product-subtabs {
    border-bottom: 1px solid var(--home-border, #e2e6ec);
    background: #fff;
}

.product-subtabs__inner {
    padding-top: 0;
    padding-bottom: 0;
}

.product-subtabs__list {
    display: flex;
    align-items: stretch;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

.product-subtabs__item {
    flex: 0 0 auto;
}

.product-subtabs__link {
    display: block;
    padding: 12px 14px;
    font-size: 0.86rem;
    font-weight: 600;
    line-height: 1.35;
    color: var(--home-muted, #5a6b7d);
    text-decoration: none;
    white-space: nowrap;
    border-bottom: 2px solid transparent;
    transition: color 0.15s ease, border-color 0.15s ease;
}

.product-subtabs__link:hover,
.product-subtabs__link:focus-visible {
    color: var(--home-accent, #b50400);
    outline: none;
}

.product-subtabs__link.is-current {
    color: var(--home-accent, #b50400);
    border-bottom-color: var(--home-accent, #b50400);
}

@media (min-width: 900px) {
    .product-subtabs__list {
        flex-wrap: wrap;
        overflow: visible;
        justify-content: flex-start;
    }

    .product-subtabs__link {
        padding: 14px 16px;
        font-size: 0.9rem;
    }
}

.product-shell {
    max-width: 1200px;
    padding-top: 24px;
}

.category-hero {
    --category-hero-min-h: clamp(220px, 32vw, 360px);
    position: relative;
    background: #fff;
}

/* 製品ページ: 帯（オーバーレイ）ではなくスライダー同系のフル画像バナー */
.category-hero--banner {
    min-height: 0;
    padding: 12px 0 0;
    border-bottom: 1px solid var(--home-border, #e2e6ec);
}

.category-hero--banner .category-hero__inner {
    width: 100%;
    max-width: var(--home-max, 1200px);
    margin: 0 auto;
    padding-inline: var(--home-shell-pad, 16px);
}

.category-hero--banner .category-hero__breadcrumb {
    margin-bottom: 10px;
}

.category-hero--banner .category-hero__breadcrumb .product-breadcrumb__list {
    color: var(--home-muted, #666);
}

.category-hero--banner .category-hero__breadcrumb .product-breadcrumb__item + .product-breadcrumb__item::before {
    color: #bbb;
}

.category-hero--banner .category-hero__breadcrumb a {
    color: var(--home-muted, #666);
}

.category-hero--banner .category-hero__breadcrumb a:hover,
.category-hero--banner .category-hero__breadcrumb a:focus-visible {
    color: var(--home-accent, #b50400);
}

.category-hero__visual {
    margin: 0;
    line-height: 0;
    background: #fff;
}

.category-hero__visual img {
    display: block;
    width: 100%;
    height: auto;
    max-height: min(540px, 56vw);
    object-fit: contain;
    object-position: center;
}

.category-hero--with-offer .category-hero__stage {
    display: grid;
    gap: 16px;
    align-items: stretch;
    margin-bottom: 16px;
}

.category-hero--with-offer .category-hero__visual {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 0;
    border-radius: 4px;
    overflow: hidden;
}

.category-hero--with-offer .category-hero__visual img {
    max-height: min(420px, 48vw);
}

.product-hero-offer {
    display: flex;
    flex-direction: column;
    gap: 12px;
    height: 100%;
    min-height: 0;
    padding: 16px;
    border: 1px solid var(--home-border, #e2e6ec);
    border-radius: 8px;
    background: #fff;
    box-sizing: border-box;
}

.product-hero-offer__benefit {
    margin: 0;
    font-size: clamp(1.15rem, 3.2vw, 1.4rem);
    font-weight: 700;
    line-height: 1.4;
    color: var(--home-accent, #b50400);
    letter-spacing: 0.02em;
}

.product-hero-offer__title {
    margin: 0;
    font-size: clamp(1.05rem, 2.8vw, 1.25rem);
    font-weight: 700;
    line-height: 1.35;
    color: #1c2d42;
    letter-spacing: 0.03em;
}

.product-hero-offer__subtitle {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.6;
    color: var(--home-muted, #5a6b7d);
}

.product-hero-offer__price-block {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 2px 0;
}

.product-hero-offer__price-row {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}

.product-hero-offer__badge {
    display: inline-flex;
    align-items: center;
    margin: 0;
    padding: 6px 12px;
    font-size: 0.88rem;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0.04em;
    color: #fff;
    background: #0f3d6e;
    border-radius: 4px;
    box-shadow: 0 2px 0 rgba(15, 61, 110, 0.25);
}

.product-hero-offer__price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px 12px;
    margin: 0;
}

.product-hero-offer__price-value {
    font-size: clamp(1.4rem, 4vw, 1.75rem);
    font-weight: 700;
    color: var(--home-accent, #b50400);
    letter-spacing: 0.02em;
}

.product-hero-offer__price-condition {
    margin: 0;
    font-size: 0.88rem;
    font-weight: 600;
    line-height: 1.5;
    color: #333;
}

.product-hero-offer__price-disclaimer {
    margin: 0;
    font-size: 0.8rem;
    line-height: 1.5;
    color: #777;
}

.product-hero-offer__price-note {
    font-size: 0.82rem;
    color: #777;
}

@media (min-width: 480px) {
    .product-hero-offer__price-row {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        gap: 12px 14px;
    }
}

.product-hero-offer__facts {
    margin: 0;
    padding-left: 1.15em;
    font-size: 0.9rem;
    line-height: 1.7;
    color: #333;
}

.product-hero-offer__facts li + li {
    margin-top: 4px;
}

.product-hero-offer__ctas {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 4px;
}

.product-hero-offer__cta {
    min-width: 0;
    flex: 1 1 auto;
    text-align: center;
    padding-inline: 14px;
    white-space: nowrap;
}

@media (max-width: 479px) {
    .product-hero-offer__cta {
        flex: 1 1 100%;
        white-space: normal;
    }
}

.product-hero-offer .btn-secondary {
    color: var(--home-accent, #b50400);
    background: #fff;
    border: 2px solid var(--home-accent, #b50400);
}

.product-hero-info-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    margin-top: 14px;
    padding: 12px 14px;
    background: #fff7f6;
    border: 1px solid rgba(181, 4, 0, 0.18);
    border-radius: 8px;
}

.product-hero-info-bar__label {
    margin: 0;
    font-size: 0.8rem;
    font-weight: 700;
    color: #5a5a5a;
    white-space: nowrap;
}

.product-hero-info-bar__links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.product-hero-info-bar__link {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 6px 12px;
    border: 1px solid var(--home-accent, #b50400);
    border-radius: 999px;
    background: #fff;
    color: var(--home-accent, #b50400);
    font-size: 0.86rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
}

.product-hero-info-bar__link:hover,
.product-hero-info-bar__link:focus-visible {
    background: var(--home-accent, #b50400);
    color: #fff;
    outline: none;
}

.product-hero-offer .btn-secondary:hover,
.product-hero-offer .btn-secondary:focus-visible {
    color: #fff;
    background: var(--home-accent, #b50400);
    outline: none;
}

@media (min-width: 900px) {
    .category-hero--with-offer .category-hero__stage {
        grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.85fr);
        gap: 20px;
        align-items: stretch;
    }

    .category-hero--with-offer .category-hero__visual img {
        width: 100%;
        height: auto;
        max-height: min(480px, 42vw);
        object-fit: contain;
    }

    .product-hero-offer {
        padding: 20px 22px;
        gap: 14px;
        box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
    }

    .category-hero--with-offer .product-hero-offer__ctas {
        margin-top: auto;
    }
}

/* ギャラリー等（帯形式が残るページ向け） */
.category-hero:not(.category-hero--banner) {
    min-height: var(--category-hero-min-h);
    background: linear-gradient(135deg, #1a3a5c 0%, #0d1a2e 55%, #3d2a14 100%);
    background-size: cover;
    background-position: center;
}

.category-hero:not(.category-hero--banner).category-hero--has-image {
    background-image:
        linear-gradient(105deg, rgba(8, 18, 32, 0.82) 0%, rgba(8, 18, 32, 0.45) 48%, rgba(8, 18, 32, 0.72) 100%),
        var(--category-hero-image);
    background-size: cover;
    background-position: center;
}

.category-hero:not(.category-hero--banner) .category-hero__overlay {
    display: flex;
    align-items: flex-end;
    min-height: var(--category-hero-min-h);
    padding: 20px 0 28px;
}

.category-hero:not(.category-hero--banner) .category-hero__inner {
    width: 100%;
}

.category-hero:not(.category-hero--banner) .category-hero__breadcrumb {
    margin-bottom: 14px;
}

.category-hero:not(.category-hero--banner) .category-hero__breadcrumb .product-breadcrumb__list {
    color: rgba(255, 255, 255, 0.82);
}

.category-hero:not(.category-hero--banner) .category-hero__breadcrumb .product-breadcrumb__item + .product-breadcrumb__item::before {
    color: rgba(255, 255, 255, 0.45);
}

.category-hero:not(.category-hero--banner) .category-hero__breadcrumb a {
    color: rgba(255, 255, 255, 0.9);
}

.category-hero:not(.category-hero--banner) .category-hero__breadcrumb a:hover,
.category-hero:not(.category-hero--banner) .category-hero__breadcrumb a:focus-visible {
    color: #fff;
}

.category-hero__copy {
    max-width: 720px;
}

.category-hero--banner .category-hero__copy {
    padding: 24px 0 28px;
}

.category-hero--banner .category-hero__title {
    color: var(--home-text, #1c2d42);
    text-shadow: none;
}

.category-hero--banner .category-hero__subtitle {
    color: var(--home-muted, #5a6b7d);
}

.category-hero--banner .category-hero__catchphrase {
    color: #c89932;
}

.category-hero__title {
    margin: 0 0 10px;
    font-size: clamp(1.6rem, 4.5vw, 2.2rem);
    font-weight: 700;
    line-height: 1.35;
    color: #fff;
    letter-spacing: 0.04em;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
}

.category-hero__subtitle {
    margin: 0;
    font-size: clamp(0.92rem, 2.2vw, 1.05rem);
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.92);
}

.category-hero__catchphrase {
    margin: 12px 0 0;
    font-size: clamp(1rem, 2.4vw, 1.15rem);
    font-weight: 700;
    color: #f5d76e;
    letter-spacing: 0.05em;
}

.product-breadcrumb__list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 0.82rem;
    color: var(--home-muted, #666);
}

.product-breadcrumb__item + .product-breadcrumb__item::before {
    content: "›";
    margin-right: 6px;
    color: #bbb;
}

.product-breadcrumb a {
    color: inherit;
    text-decoration: none;
}

.product-breadcrumb a:hover,
.product-breadcrumb a:focus-visible {
    color: var(--home-accent, #c41e3a);
    text-decoration: underline;
}

.product-detail {
    display: block;
}

.product-layout {
    display: block;
}

.product-layout--with-guide-sidebar {
    display: grid;
    gap: 24px;
    align-items: start;
}

.product-guide-sidebar {
    margin: 0;
    padding: 16px 14px 18px;
    border: 1px solid #e4e4e4;
    border-radius: 8px;
    background: #fafafa;
}

.product-guide-sidebar__heading {
    margin: 0 0 12px;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #333;
}

.product-guide-sidebar__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.product-guide-sidebar__item + .product-guide-sidebar__item {
    margin-top: 6px;
}

.product-guide-sidebar__link {
    display: block;
    padding: 10px 12px;
    border-radius: 6px;
    color: #222;
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.4;
    text-decoration: none;
    background: #fff;
    border: 1px solid #e8e8e8;
}

.product-guide-sidebar__link:hover,
.product-guide-sidebar__link:focus-visible {
    color: var(--home-accent, #b50400);
    border-color: rgba(181, 4, 0, 0.35);
    outline: none;
}

.product-guide-sidebar__link.is-current {
    color: #fff;
    background: var(--home-accent, #b50400);
    border-color: var(--home-accent, #b50400);
}

@media (min-width: 960px) {
    .product-layout--with-guide-sidebar {
        grid-template-columns: minmax(0, 1fr) 220px;
        gap: 28px 32px;
    }

    .product-guide-sidebar {
        position: sticky;
        top: calc(var(--site-brand-header-height, 84px) + 12px);
    }
}

.product-detail__body {
    min-width: 0;
    overflow-x: clip;
}

.product-detail-section img {
    max-width: 100%;
    height: auto;
}

.product-intro {
    margin: 0 0 20px;
    line-height: 1.9;
    font-size: 0.95rem;
}

.product-features h2:not(.night-sign-legacy-section__title) {
    margin: 0 0 12px;
    font-size: 1.05rem;
    font-weight: 700;
    color: #333;
}

.product-features__list {
    margin: 0;
    padding-left: 1.2em;
    line-height: 1.85;
}

.product-features__list li + li {
    margin-top: 6px;
}

/* ページ内ナビ / 関連リンク（タスキ・のぼり等で共用） */
.product-extra-links,
.product-legacy-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.product-extra-links {
    margin-top: 20px;
}

.product-extra-links--page,
.product-legacy-nav {
    margin: 32px 0 20px;
}

.product-extra-links__item,
.product-legacy-nav__link {
    display: inline-flex;
    align-items: center;
    padding: 8px 14px;
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--home-accent, #c41e3a);
    text-decoration: none;
    border: 1px solid currentColor;
    border-radius: 6px;
    background: #fff;
    cursor: pointer;
    font-family: inherit;
}

.product-extra-links__item:hover,
.product-extra-links__item:focus-visible,
.product-legacy-nav__link:hover,
.product-legacy-nav__link:focus-visible {
    color: #fff;
    background: var(--home-accent, #c41e3a);
    outline: none;
}

.product-related {
    padding: 16px;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
    background: #fafafa;
}

.product-related--footer {
    max-width: 480px;
    margin: 32px 0 8px;
}

.product-related__heading {
    margin: 0 0 12px;
    font-size: 0.92rem;
    font-weight: 700;
    color: #333;
}

.product-related__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.product-related__list li + li {
    margin-top: 8px;
}

.product-related__list a {
    display: block;
    padding: 6px 0;
    font-size: 0.88rem;
    color: #1a5fb4;
    text-decoration: none;
    border-bottom: 1px solid #eee;
}

.product-related__list a:hover,
.product-related__list a:focus-visible {
    color: var(--home-accent, #c41e3a);
    outline: none;
}

.product-detail-section .cta-section {
    margin-top: 32px;
    padding-top: 24px;
    border-top: 1px solid #eee;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.product-order-form {
    margin-top: 40px;
    padding-top: 32px;
    border-top: 2px solid #e6b422;
    scroll-margin-top: 88px;
    text-align: center;
}

.product-order-form__header {
    margin-bottom: 20px;
}

.product-order-form__title {
    margin: 0 0 8px;
    font-size: clamp(1.25rem, 3vw, 1.5rem);
    font-weight: 700;
    color: #00838f;
}

.product-order-form__lead {
    margin: 0;
    font-size: 0.92rem;
    color: var(--home-muted, #666);
}

.product-order-form .poster-order-intro {
    margin: 0 auto 16px;
    max-width: 840px;
}

.page-posters .poster-order-modal.night-sign-estimate-modal {
    width: min(1080px, calc(100vw - 24px));
}

.poster-order-modal__inner {
    width: min(1080px, 96vw);
    max-height: min(92vh, 980px);
    overflow: auto;
}

.poster-order-modal__form {
    margin-top: 8px;
    text-align: left;
}

.poster-order-content-grid {
    display: grid;
    gap: 20px;
    align-items: start;
}

@media (min-width: 900px) {
    .poster-order-content-grid {
        grid-template-columns: minmax(0, 1fr) 260px;
        gap: 28px;
    }
}

.poster-order-guide {
    margin: 0;
}

.poster-order-guide img {
    display: block;
    width: 100%;
    max-width: 260px;
    height: auto;
    border: 1px solid #e2e6ec;
    border-radius: 8px;
    background: #fff;
}

.poster-order-guide figcaption {
    margin-top: 8px;
    font-size: 0.78rem;
    line-height: 1.5;
    color: #667788;
}

.poster-order-estimate-summary {
    margin: 0 0 16px;
    padding: 12px 14px;
    border: 1px solid #dce7f2;
    border-radius: 8px;
    background: #f5f9fd;
    font-size: 0.9rem;
    line-height: 1.6;
    color: #334155;
}

.poster-order-estimate-summary[hidden] {
    display: none;
}

.poster-order-modal .contact-form {
    max-width: none;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
}

.poster-design-gallery {
    margin-top: 36px;
    scroll-margin-top: 96px;
}

.poster-design-gallery__section + .poster-design-gallery__section {
    margin-top: 24px;
}

.poster-design-gallery__section-title {
    margin: 0 0 12px;
    font-size: 1rem;
    font-weight: 700;
    color: #333;
}

.page-posters .poster-design-gallery .gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.poster-design-gallery__hint {
    margin: 8px 0 0;
    font-size: 0.9rem;
    line-height: 1.65;
    color: #555;
}

.poster-design-gallery__summary {
    margin: 16px 0 20px;
}

.page-posters .poster-design-gallery .gallery-grid__button {
    position: relative;
    display: block;
    width: 100%;
    padding: 0;
    border: 2px solid var(--home-border, #e2e6ec);
    border-radius: 8px;
    overflow: hidden;
    background: #f8f9fb;
    cursor: zoom-in;
}

.page-posters .poster-design-gallery .gallery-grid__button.is-selected {
    border-color: var(--home-accent, #b50400);
    box-shadow: 0 0 0 2px rgba(181, 4, 0, 0.18);
}

.poster-design-gallery__badge {
    position: absolute;
    top: 6px;
    left: 6px;
    z-index: 1;
    display: none;
    padding: 3px 7px;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    color: #fff;
    background: var(--home-accent, #b50400);
}

.page-posters .poster-design-gallery .gallery-grid__button.is-selected .poster-design-gallery__badge {
    display: inline-block;
}

.page-posters .poster-design-gallery .night-sign-design-picker__preview,
.page-posters .poster-estimate-modal .night-sign-design-picker__preview {
    aspect-ratio: 2 / 3;
}

.page-posters .gallery-lightbox__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    margin-top: 12px;
}

.page-posters .gallery-lightbox__nav {
    position: absolute;
    top: 46%;
    z-index: 2;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    border: none;
    border-radius: 50%;
    font-size: 1.6rem;
    line-height: 1;
    color: #fff;
    background: rgba(0, 0, 0, 0.5);
    cursor: pointer;
}

.page-posters .gallery-lightbox__nav--prev {
    left: 8px;
}

.page-posters .gallery-lightbox__nav--next {
    right: 8px;
}

.page-posters .gallery-lightbox__nav:hover,
.page-posters .gallery-lightbox__nav:focus-visible {
    background: rgba(0, 0, 0, 0.72);
    outline: none;
}

.page-posters .gallery-lightbox__counter {
    margin: 4px 0 0;
    font-size: 0.8rem;
    text-align: center;
    color: #8896a6;
}

.page-posters .poster-estimate-modal__hint {
    margin: 6px 0 0;
    font-size: 0.82rem;
    line-height: 1.5;
    color: #667788;
}

.page-posters .poster-estimate-modal .night-sign-estimate__fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 14px;
}

.page-posters .poster-estimate-modal .night-sign-estimate__field--full {
    grid-column: 1 / -1;
}

.page-posters .poster-estimate-modal .night-sign-estimate__field input[type="text"] {
    width: 100%;
    box-sizing: border-box;
    min-height: 42px;
    padding: 8px 10px;
    border: 1px solid #d5dbe3;
    border-radius: 8px;
    font: inherit;
}

@media (max-width: 640px) {
    .page-posters .poster-estimate-modal .night-sign-estimate__fields {
        grid-template-columns: 1fr;
    }
}

.page-posters .poster-design-gallery .gallery-grid__thumb {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 2 / 3;
    object-fit: contain;
}

.page-posters .poster-design-gallery .gallery-lightbox {
    width: min(96vw, 900px);
    max-width: 96vw;
    max-height: 96vh;
    padding: 0;
    border: none;
    border-radius: 12px;
    background: transparent;
}

.page-posters .poster-design-gallery .gallery-lightbox::backdrop,
.page-posters .gallery-lightbox::backdrop {
    background: rgba(8, 18, 32, 0.82);
}

.page-posters .gallery-lightbox__inner {
    position: relative;
    padding: 12px;
    border-radius: 12px;
    background: #fff;
}

.page-posters .gallery-lightbox__close {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 2;
    width: 36px;
    height: 36px;
    border: none;
    border-radius: 50%;
    font-size: 1.4rem;
    line-height: 1;
    color: #fff;
    background: rgba(0, 0, 0, 0.55);
    cursor: pointer;
}

.page-posters .gallery-lightbox__image {
    display: block;
    max-width: 100%;
    max-height: 80vh;
    margin: 0 auto;
    object-fit: contain;
}

.page-posters .gallery-lightbox__caption {
    margin-top: 10px;
    font-size: 0.88rem;
    text-align: center;
    color: var(--home-muted, #5a6b7d);
}

.poster-design-gallery__more {
    margin: 18px 0 0;
    text-align: right;
    font-size: 0.92rem;
}

.poster-design-gallery__more a {
    color: var(--home-accent, #b50400);
    font-weight: 700;
}

.product-legacy-compare-table-wrap {
    width: 100%;
    overflow-x: auto;
    margin: 8px 0 20px;
}

.product-legacy-compare-table {
    width: 100%;
    min-width: 720px;
    border-collapse: collapse;
    font-size: 0.86rem;
    line-height: 1.45;
    color: #0582ff;
    background: #f7fbff;
}

.product-legacy-compare-table th,
.product-legacy-compare-table td {
    border: 1px solid #9ec8f2;
    padding: 10px 8px;
    vertical-align: middle;
}

.product-legacy-compare-table thead th {
    background: #0582ff;
    color: #fff;
    font-weight: 700;
    text-align: center;
}

.product-legacy-compare-table tbody th {
    width: 18%;
    text-align: left;
    color: #111;
    font-weight: 700;
    background: #fff;
    white-space: pre-line;
}

.product-legacy-compare-table td.is-mark {
    text-align: center;
    font-size: 1.45rem;
    font-weight: 700;
    background: #f7fbff;
}

.product-legacy-compare-table td.is-yes {
    color: #0582ff;
}

.product-legacy-compare-table td.is-no {
    color: #0582ff;
}

.product-legacy-compare-table td.is-cross {
    color: #0582ff;
}

.product-legacy-compare-table td.is-note {
    color: #686868;
    font-size: 0.78rem;
    text-align: left;
    white-space: pre-line;
}

.product-legacy-compare-table tr.is-footer th,
.product-legacy-compare-table tr.is-footer td {
    color: #686868;
    font-size: 0.78rem;
    font-weight: 700;
    text-align: center;
    background: #fff;
}

.product-legacy-compare-table tr.is-footer th {
    text-align: left;
    color: #111;
}

.product-order-form .contact-form {
    max-width: 840px;
    margin: 0 auto;
    padding: 0;
    text-align: left;
    background: #fffff8;
    border: 1px solid #e6b422;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(28, 45, 66, 0.06);
}

.product-order-form .contact-form__title,
.product-order-form .contact-form__note {
    text-align: center;
}

.product-order-form .contact-form__inner {
    padding: clamp(24px, 4vw, 36px) clamp(20px, 5vw, 32px);
}

.product-order-form__success {
    margin: 0 auto;
    max-width: 840px;
    padding: 16px 20px;
    border: 1px solid #b8dfc4;
    border-radius: 8px;
    background: #f0faf3;
    color: #1f5c32;
    text-align: center;
}

.product-lineup {
    margin-top: 28px;
}

.product-lineup__lead {
    margin: -8px 0 18px;
    color: #555;
    font-size: 0.95rem;
    line-height: 1.6;
}

.product-lineup--featured {
    margin-top: 8px;
    margin-bottom: 36px;
    padding: 22px 0 8px;
    border-top: 1px solid #ececec;
}

.product-lineup--featured h2 {
    font-size: clamp(1.2rem, 2.4vw, 1.45rem);
    margin-bottom: 8px;
}

.page-tatekanban .product-lineup--featured .product-lineup__grid,
.page-products-index .product-lineup--featured .product-lineup__grid {
    gap: 18px;
}

@media (min-width: 768px) {
    .page-tatekanban .product-lineup--featured .product-lineup__grid,
    .page-products-index .product-lineup--featured .product-lineup__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1100px) {
    .page-tatekanban .product-lineup--featured .product-lineup__grid,
    .page-products-index .product-lineup--featured .product-lineup__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.page-tatekanban .category-hero:not(.category-hero--has-image),
.page-products-index .category-hero:not(.category-hero--has-image) {
    padding-bottom: 18px;
}

.page-tatekanban .category-hero:not(.category-hero--has-image) .category-hero__copy,
.page-products-index .category-hero:not(.category-hero--has-image) .category-hero__copy {
    max-width: 40rem;
}

.page-tatekanban .product-intro,
.page-products-index .product-intro {
    margin-bottom: 12px;
}

.product-lineup h2,
.product-name-guide h2,
.product-testimonials h2 {
    margin: 0 0 16px;
    font-size: 1.05rem;
    font-weight: 700;
    color: #333;
}

.product-lineup__grid {
    display: grid;
    gap: 16px;
}

@media (min-width: 768px) {
    .product-lineup__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.product-lineup__card {
    display: flex;
    flex-direction: column;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.product-lineup__card-link {
    display: flex;
    flex-direction: column;
    flex: 1;
    color: inherit;
    text-decoration: none;
}

.product-lineup__card:has(.product-lineup__card-link:hover),
.product-lineup__card:has(.product-lineup__card-link:focus-within) {
    border-color: #ccc;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
}

.product-lineup__image {
    margin: 0;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #f3f3f3;
}

.product-lineup__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.product-lineup__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 8px;
    padding: 14px;
}

.product-lineup__badge {
    display: inline-block;
    align-self: flex-start;
    padding: 2px 8px;
    font-size: 0.72rem;
    font-weight: 700;
    color: #fff;
    background: #1a5fb4;
    border-radius: 4px;
}

.product-lineup__title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.45;
}

.product-lineup__desc {
    margin: 0;
    flex: 1;
    font-size: 0.84rem;
    line-height: 1.7;
    color: #555;
}

.product-lineup__price {
    margin: 0;
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--home-accent, #c41e3a);
}

.product-lineup__cta {
    margin-top: 4px;
    font-size: 0.84rem;
    font-weight: 700;
    color: var(--home-accent, #b50400);
}

.product-name-guide {
    margin-top: 28px;
    padding: 16px;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
    background: #fafafa;
}

.product-name-guide__grid {
    display: grid;
    gap: 16px;
}

@media (min-width: 640px) {
    .product-name-guide__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.product-name-guide__group h3 {
    margin: 0 0 8px;
    font-size: 0.88rem;
    font-weight: 700;
}

.product-name-guide__group ul {
    margin: 0;
    padding-left: 1.2em;
    font-size: 0.88rem;
    line-height: 1.8;
}

.product-name-guide__note {
    margin: 14px 0 0;
    font-size: 0.84rem;
    color: #666;
}

.product-testimonials {
    margin-top: 28px;
}

.product-testimonials__list {
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

@media (min-width: 768px) {
    .product-testimonials__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.product-testimonials__item blockquote {
    margin: 0;
    padding: 14px;
    border-left: 3px solid var(--home-accent, #c41e3a);
    background: #fafafa;
    border-radius: 0 8px 8px 0;
}

.product-testimonials__item p {
    margin: 0 0 8px;
    font-size: 0.88rem;
    line-height: 1.7;
}

.product-testimonials__item footer {
    font-size: 0.8rem;
    color: #666;
}

.page-signs .product-detail {
    grid-template-columns: minmax(0, 1fr);
}

.product-points {
    margin-top: 8px;
}

.product-points > .night-sign-legacy-section__header,
.product-features > .night-sign-legacy-section__header,
.product-samples > .night-sign-legacy-section__header,
.product-price-table > .night-sign-legacy-section__header {
    margin-bottom: 16px;
}

.product-points__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 14px;
    grid-template-columns: 1fr;
}

@media (min-width: 768px) {
    .product-points__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: stretch;
    }
}

.product-points__item {
    display: flex;
    flex-direction: column;
    padding: 14px;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
    background: #fafafa;
}

/* ポスター：PCは必ず2カラムで記載（他ルールの上書きを防ぐ） */
@media (min-width: 768px) {
    .page-posters .product-points__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .page-posters .product-legacy-figures:not(.product-legacy-figures--trio):not(.product-legacy-figures--pair):not(.product-legacy-figures--stack) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .page-posters .product-legacy-figures--trio {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .page-posters .product-legacy-figures--pair {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .page-posters .product-legacy-figures--stack {
        grid-template-columns: 1fr;
    }
}

.product-points__title {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0 0 8px;
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.45;
}

.product-points__num {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    font-size: 0.82rem;
    font-weight: 700;
    color: #fff;
    background: var(--home-accent, #c41e3a);
    border-radius: 50%;
}

.product-points__desc {
    margin: 0;
    font-size: 0.86rem;
    line-height: 1.75;
    color: #555;
}

.product-price-table {
    margin-top: 28px;
}

.product-price-table__lead {
    margin: 0 0 14px;
    font-size: 0.88rem;
    line-height: 1.75;
    color: #555;
}

.product-price-table__wrap {
    overflow-x: auto;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
}

.product-price-table__table {
    width: 100%;
    min-width: 560px;
    border-collapse: collapse;
    font-size: 0.84rem;
}

.product-price-table__table th,
.product-price-table__table td {
    padding: 10px 12px;
    border-bottom: 1px solid #eee;
    text-align: center;
    white-space: nowrap;
}

.product-price-table__table thead th {
    background: #f3f6fa;
    font-weight: 700;
    color: #333;
}

.product-price-table__table tbody th {
    background: #fafafa;
    font-weight: 600;
    text-align: left;
}

.product-price-table__table tbody tr:last-child th,
.product-price-table__table tbody tr:last-child td {
    border-bottom: none;
}

.product-price-table__note,
.product-includes-note {
    margin: 14px 0 0;
    font-size: 0.84rem;
    line-height: 1.75;
    color: #666;
}

.product-includes-note {
    padding: 14px;
    border-left: 3px solid #1a5fb4;
    background: #f8fafc;
    border-radius: 0 8px 8px 0;
}

.product-figures {
    margin-top: 20px;
}

.product-figures__item {
    margin: 0;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
}

.product-figures__item img {
    display: block;
    width: 100%;
    height: auto;
}

.product-figures__item figcaption {
    padding: 12px 14px;
    font-size: 0.86rem;
    line-height: 1.7;
    color: #555;
    background: #fafafa;
    border-top: 1px solid #eee;
}

.product-highlight-figure {
    margin-top: 24px;
}

.product-highlight-figure__inner {
    display: grid;
    gap: 16px;
    margin: 0;
    padding: 16px;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
    background: #fff;
}

@media (min-width: 640px) {
    .product-highlight-figure__inner {
        grid-template-columns: 152px minmax(0, 1fr);
        align-items: center;
    }
}

.product-highlight-figure__inner img {
    display: block;
    width: 100%;
    max-width: 200px;
    height: auto;
    margin: 0 auto;
}

.product-highlight-figure__inner figcaption {
    margin: 0;
}

.product-highlight-figure__inner figcaption p {
    margin: 0 0 10px;
    font-size: 0.88rem;
    line-height: 1.75;
    color: #444;
}

.product-highlight-figure__inner figcaption a {
    font-size: 0.88rem;
    font-weight: 600;
    color: #1a5fb4;
}

.product-samples {
    margin-top: 28px;
}


.product-samples__grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 768px) {
    .product-samples__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.product-samples__item {
    margin: 0;
    text-align: center;
}

.product-samples__item img {
    display: block;
    width: 100%;
    height: auto;
    border: 1px solid #e8e8e8;
    border-radius: 6px;
    background: #f8f8f8;
}

.product-samples__item a {
    display: block;
}

.product-samples__item a:hover img,
.product-samples__item a:focus-visible img {
    opacity: 0.92;
    outline: none;
}

.product-samples__item figcaption {
    margin-top: 8px;
    font-size: 0.78rem;
    line-height: 1.5;
    color: #666;
}

.product-legacy-section {
    margin-top: 40px;
    padding-top: 32px;
    border-top: 1px solid #e8e8e8;
    scroll-margin-top: 88px;
}

.product-legacy-section__hero {
    margin: 0 0 20px;
    text-align: center;
}

.product-legacy-section__hero img {
    display: block;
    width: 100%;
    max-width: 720px;
    height: auto;
    margin: 0 auto;
}

.product-legacy-section__hero--overlay {
    position: relative;
    display: block;
    width: fit-content;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    overflow: hidden;
}

.product-legacy-section__hero--overlay img {
    max-width: min(900px, 100%);
}

.product-legacy-section__hero-overlay {
    position: absolute;
    left: 31px;
    top: 50%;
    transform: translateY(-50%);
    right: auto;
    width: min(700px, calc(100% - 48px));
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    text-align: left;
    color: #fff;
    font-size: clamp(1.4rem, 4.2vw, 2.5rem);
    font-weight: 700;
    line-height: 1.325;
    letter-spacing: 0.02em;
    text-shadow: 3px 3px 4px #006634;
    pointer-events: none;
}

@media (max-width: 640px) {
    .product-legacy-section__hero-overlay {
        left: 16px;
        width: calc(100% - 28px);
        font-size: clamp(1.15rem, 5.2vw, 1.7rem);
    }
}

.product-legacy-section__hero-overlay span {
    display: block;
}

.product-legacy-guide-ctas {
    display: grid;
    gap: 10px;
    margin: 0 0 16px;
}

.product-legacy-guide-ctas__link {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 56px;
    padding: 12px 28px 12px 48px;
    border-radius: 999px;
    color: #fff;
    font-size: clamp(0.95rem, 2.2vw, 1.2rem);
    font-weight: 700;
    letter-spacing: 0.02em;
    text-align: center;
    text-decoration: none;
    transition: background-color 0.25s ease, transform 0.2s ease;
}

.product-legacy-guide-ctas__link::before {
    content: "";
    position: absolute;
    left: 22px;
    top: 50%;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 8px 0 8px 12px;
    border-color: transparent transparent transparent #fff;
    transform: translateY(-50%);
}

.product-legacy-guide-ctas__link--green {
    background: #92d64a;
}

.product-legacy-guide-ctas__link--green:hover {
    background: #00cc9f;
    color: #fff;
}

.product-legacy-guide-ctas__link--pink {
    background: #ff72cd;
}

.product-legacy-guide-ctas__link--pink:hover {
    background: #fc5588;
    color: #fff;
}

.product-legacy-guide-ctas__link--blue {
    background: #71b8fe;
}

.product-legacy-guide-ctas__link--blue:hover {
    background: #4e50f4;
    color: #fff;
}

.product-legacy-guide-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px 28px;
    margin: 0 0 28px;
    padding: 12px 0 18px;
    border-top: 1px solid #e11;
    border-bottom: 1px solid #e11;
    font-size: 0.95rem;
}

.product-legacy-guide-links a {
    color: #111;
    text-decoration: none;
}

.product-legacy-guide-links a:hover {
    color: #c41e3a;
    text-decoration: underline;
}

.product-legacy-masthead {
    margin: 8px 0 36px;
}

.product-legacy-masthead__eyebrow {
    margin: 0 0 10px;
    font-size: clamp(1.2rem, 3vw, 1.75rem);
    font-weight: 400;
    line-height: 1.5;
    color: #000;
}

.product-legacy-masthead__title {
    margin: 0 0 18px;
    font-size: clamp(1.8rem, 5vw, 3.4rem);
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.02em;
    color: #000;
}

.product-legacy-masthead__lead {
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.9;
    color: #000;
}

.page-poster-zero-yen .product-legacy-section,
.page-poster-preparation .product-legacy-section,
.page-poster-sizes .product-legacy-section,
.page-poster-points .product-legacy-section,
.page-poster-retouch .product-legacy-section {
    --poster-guide-width: 900px;
    border-top: 0;
    padding-top: 8px;
    max-width: var(--poster-guide-width);
    margin: 12px auto 0;
}

.page-poster-zero-yen .product-legacy-section__hero,
.page-poster-preparation .product-legacy-section__hero,
.page-poster-sizes .product-legacy-section__hero,
.page-poster-points .product-legacy-section__hero,
.page-poster-retouch .product-legacy-section__hero {
    width: 100%;
    max-width: var(--poster-guide-width);
}

.page-poster-zero-yen .product-legacy-section__hero img,
.page-poster-preparation .product-legacy-section__hero img,
.page-poster-sizes .product-legacy-section__hero img,
.page-poster-points .product-legacy-section__hero img,
.page-poster-retouch .product-legacy-section__hero img {
    width: 100%;
    max-width: 100%;
}

.page-poster-zero-yen .product-legacy-figures__item--annotated,
.page-poster-preparation .product-legacy-figures__item--annotated,
.page-poster-sizes .product-legacy-figures__item--annotated,
.page-poster-points .product-legacy-figures__item--annotated,
.page-poster-retouch .product-legacy-figures__item--annotated {
    max-width: 100%;
}

.page-poster-zero-yen .category-hero--banner:not(.category-hero--has-image),
.page-poster-preparation .category-hero--banner:not(.category-hero--has-image),
.page-poster-sizes .category-hero--banner:not(.category-hero--has-image) {
    padding-bottom: 8px;
}

.page-poster-preparation .product-legacy-section__hero-overlay {
    text-shadow: 3px 3px 4px #5e483c;
}

.product-legacy-section__hero-overlay--sky {
    color: #3f72ff;
    text-shadow: 4px 4px 2px #fff;
}

.product-legacy-section__hero-overlay--navy {
    color: #fff;
    text-shadow: 3px 3px 4px #0000b2;
}

.product-legacy-section__hero-overlay--magenta {
    color: #fff;
    text-shadow: 3px 3px 4px #bf0062;
}

.page-poster-preparation .product-legacy-guide,
.page-poster-sizes .product-legacy-guide,
.page-poster-points .product-legacy-guide,
.page-poster-retouch .product-legacy-guide {
    margin-top: 8px;
}

.page-poster-points .category-hero--banner:not(.category-hero--has-image),
.page-poster-retouch .category-hero--banner:not(.category-hero--has-image) {
    padding-bottom: 8px;
}

.product-legacy-block--callout {
    margin: 0 0 14px;
    padding: 14px 16px;
    background: #f2fbff;
    border: 1px solid #00bfff;
    border-radius: 4px;
}

.product-legacy-block--callout .product-legacy-block__title--band {
    background: transparent;
    border-left: 0;
    border-bottom: 0;
    color: var(--legacy-accent, #5985ff) !important;
    padding: 0;
    margin: 0 0 8px;
}

.product-legacy-block__eyebrow {
    margin: 0 0 6px;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #ba7d14;
}

.product-legacy-block__price {
    margin: 0 0 12px;
    font-size: 1.05rem;
    font-weight: 700;
    color: #c10097;
}

.product-legacy-block__highlight {
    margin: 0 0 14px;
    padding: 12px 14px;
    background: #f2fbff;
    border-left: 4px solid #c10097;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.7;
    color: #222;
}

.product-legacy-price-cards {
    display: grid;
    gap: 12px;
    margin: 0 0 16px;
}

@media (min-width: 720px) {
    .product-legacy-price-cards {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.product-legacy-price-cards__item {
    padding: 14px;
    border: 1px solid #e8e8e8;
    background: #fafafa;
}

.product-legacy-price-cards__label {
    margin: 0 0 8px;
    font-size: 0.88rem;
    line-height: 1.5;
    color: #333;
}

.product-legacy-price-cards__price {
    margin: 0;
    font-size: 1.2rem;
    font-weight: 700;
    color: #c10097;
}

.product-legacy-steps {
    margin: 0 0 16px;
    padding-left: 1.4em;
    line-height: 1.9;
    color: #222;
}

.page-poster-zero-yen .product-legacy-block__title--band {
    background: transparent;
    border-left: 0;
    border-bottom: 2px solid var(--legacy-accent, #d82546);
    color: var(--legacy-accent, #d82546) !important;
    padding: 0 0 10px;
    margin-bottom: 16px;
}

.page-poster-sizes .product-legacy-block__title--band {
    background: transparent;
    border-left: 0;
    border-bottom: 2px solid var(--legacy-accent, #0582ff);
    color: var(--legacy-accent, #0582ff) !important;
    padding: 0 0 10px;
    margin: 28px 0 16px;
    font-size: clamp(1.1rem, 2.4vw, 1.35rem);
}

.page-poster-sizes .product-legacy-block__title--bar {
    text-align: center;
    letter-spacing: 0.02em;
}

.page-poster-sizes .product-legacy-block--center .product-legacy-block__text--center {
    text-align: center;
    font-weight: 700;
    max-width: 52em;
    margin-left: auto;
    margin-right: auto;
}

.page-poster-sizes .product-legacy-compare-table--period {
    min-width: 760px;
}

.page-poster-sizes .product-legacy-compare-table--period thead th {
    background: #43aff9;
}

.page-poster-sizes .product-legacy-compare-table--period tbody th {
    width: 22%;
    background: #f3f9ff;
    white-space: pre-line;
}

.page-poster-sizes .product-legacy-compare-table--period td.is-note {
    text-align: center;
    color: #333;
    font-size: 0.82rem;
    line-height: 1.55;
}

.page-poster-sizes .product-legacy-block__links {
    margin: 8px 0 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    font-size: 0.78rem;
    color: #666;
}

.page-poster-sizes .product-legacy-block__links a {
    color: #686868;
    text-decoration: underline;
}

.page-poster-sizes .product-legacy-figures--banner {
    display: block;
    margin: 24px 0 8px;
}

.page-poster-sizes .product-legacy-figures--banner .product-legacy-figures__item--full {
    max-width: 100%;
    margin: 0;
}

.page-poster-sizes .product-legacy-figures--banner img {
    width: 100%;
    height: auto;
    display: block;
}

.page-poster-sizes .product-legacy-figures__link {
    display: block;
}

.product-legacy-section__catchphrase {
    margin: 0 0 8px;
    font-size: 0.92rem;
    font-weight: 700;
    color: #c41e3a;
    letter-spacing: 0.04em;
}

.product-legacy-section__title {
    margin: 0 0 12px;
    font-size: clamp(1.2rem, 3vw, 1.45rem);
    font-weight: 700;
    color: #1a3a5c;
    line-height: 1.45;
}

.product-legacy-section__lead {
    margin: 0 0 20px;
    line-height: 1.85;
    font-size: 0.95rem;
    color: #444;
}

/* ポスター記事：他製品ページと同じ見出し様式 */
.page-posters .product-legacy-section {
    margin: 36px 0;
}

.page-posters.page-poster-zero-yen .product-legacy-section,
.page-posters.page-poster-preparation .product-legacy-section,
.page-posters.page-poster-sizes .product-legacy-section,
.page-posters.page-poster-points .product-legacy-section,
.page-posters.page-poster-retouch .product-legacy-section {
    max-width: 900px;
    margin: 12px auto 0;
}

.page-posters .product-layout--with-guide-sidebar .product-legacy-section {
    max-width: none;
    margin: 12px 0 0;
}

.page-posters .product-legacy-section__header.night-sign-legacy-section__header {
    margin-bottom: 18px;
}

.page-posters .product-legacy-block__title.night-sign-legacy-section__subtitle {
    margin: 0 0 14px;
    padding-bottom: 0;
    border-bottom: none;
    color: #333;
}

/* 旧サイト準拠：目次左＋本文右 */
.product-legacy-guide {
    display: grid;
    gap: 28px;
    align-items: start;
}

.product-legacy-toc {
    margin: 0;
    padding: 4px 0 0;
}

.product-legacy-toc__title {
    margin: 0 0 14px;
    font-size: 1.35rem;
    font-weight: 700;
    color: #000;
    letter-spacing: 0.04em;
}

.product-legacy-toc__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.product-legacy-toc__item + .product-legacy-toc__item {
    margin-top: 10px;
}

.product-legacy-toc__link {
    display: inline-block;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.5;
    color: #000;
    text-decoration: none;
}

.product-legacy-toc__link:hover,
.product-legacy-toc__link:focus-visible {
    color: var(--home-accent, #b50400);
    outline: none;
}

.product-legacy-toc__children {
    margin: 8px 0 0;
    padding: 0 0 0 1.1em;
    list-style: none;
    border-left: 1px solid #cfcfcf;
}

.product-legacy-toc__children li {
    position: relative;
    margin: 0;
    padding: 6px 0 6px 14px;
}

.product-legacy-toc__children li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 1.1em;
    width: 10px;
    border-top: 1px solid #cfcfcf;
}

.product-legacy-toc__children a {
    font-size: 0.92rem;
    font-weight: 400;
    color: #444;
    text-decoration: none;
}

.product-legacy-toc__children a:hover,
.product-legacy-toc__children a:focus-visible {
    color: var(--home-accent, #b50400);
    outline: none;
}

.product-legacy-guide__main {
    min-width: 0;
}

.product-legacy-block {
    scroll-margin-top: 96px;
}

.product-legacy-block__title--band {
    margin: 0 0 18px;
    padding: 8px 0 8px 14px;
    border: none;
    border-bottom: none;
    border-left: 10px solid var(--legacy-accent, #bf783a);
    background: #f2f2f2;
    color: #000 !important;
    font-size: clamp(1.2rem, 2.6vw, 1.5rem);
    font-weight: 400;
    letter-spacing: 0.12em;
    line-height: 1.4;
}

.product-legacy-block__title--bar {
    margin: 28px 0 18px;
    padding: 10px 16px;
    border: none;
    border-bottom: none;
    background: var(--legacy-accent, #CC3366);
    color: #fff !important;
    font-size: clamp(1.05rem, 2.4vw, 1.25rem);
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.4;
    text-align: center;
}

.product-legacy-block__below {
    margin-top: 18px;
}

.product-legacy-figures__heading {
    margin: 0 0 8px;
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.4;
    color: #000;
    text-align: center;
}

.product-legacy-figures--pair {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px 28px;
    max-width: 480px;
}

.product-legacy-figures--pair .product-legacy-figures__item img {
    max-width: 220px;
    margin-inline: auto;
    border: none;
    border-radius: 0;
    background: transparent;
}

/* 旧HTML準拠：Jobs / Ghosn / Zuckerberg は常に横3列・高さ揃え */
.product-legacy-figures--trio {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px 14px;
    align-items: start;
    max-width: 720px;
    margin-inline: auto;
}

.product-legacy-figures--trio .product-legacy-figures__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 0;
}

.product-legacy-figures--trio .product-legacy-figures__item img {
    width: auto;
    max-width: 100%;
    height: 170px;
    object-fit: contain;
    object-position: center bottom;
    border: none;
    border-radius: 0;
    background: transparent;
}

.product-legacy-figures--pair figcaption,
.product-legacy-figures--trio figcaption {
    text-align: center;
}

.product-legacy-figures--trio figcaption {
    margin-top: 6px;
    font-size: 0.75rem;
    line-height: 1.45;
    color: #333;
}

.product-legacy-colors__card {
    scroll-margin-top: calc(var(--site-brand-header-height, 84px) + 12px);
}

@media (min-width: 900px) {
    .product-legacy-guide {
        grid-template-columns: minmax(180px, 230px) minmax(0, 1fr);
        gap: 36px 40px;
    }

    .product-legacy-toc {
        position: sticky;
        top: calc(var(--site-brand-header-height, 84px) + 12px);
    }

    .product-legacy-block--with-rail > .product-legacy-block__frame {
        grid-template-columns: 160px minmax(0, 1fr);
        gap: 28px;
        align-items: start;
    }

    .product-legacy-block--rail-end > .product-legacy-block__frame {
        grid-template-columns: minmax(0, 1fr) 160px;
    }

    .product-legacy-block__rail img {
        max-width: 177px;
        width: 100%;
        height: auto;
    }

    /* キャッチフレーズ等の縦長レール画像 */
    .page-poster-preparation .product-legacy-block--with-rail .product-legacy-block__rail img {
        max-width: 177px;
    }
}

@media (max-width: 899px) {
    .product-legacy-toc {
        padding: 14px 16px;
        border: 1px solid #e5e5e5;
        border-radius: 8px;
        background: #fafafa;
    }
}

.product-legacy-section__cta {
    margin: 20px 0 0;
}

.product-legacy-block {
    margin-bottom: 28px;
}

.product-legacy-block__frame {
    display: grid;
    gap: 18px;
    align-items: start;
}

.product-legacy-block__rail {
    margin: 0;
}

.product-legacy-block__rail img {
    display: block;
    width: 100%;
    max-width: 140px;
    height: auto;
}

.product-legacy-block__body--split {
    display: grid;
    gap: 24px;
    align-items: start;
}

.product-legacy-block--aside-start .product-legacy-block__body--split {
    direction: rtl;
}

.product-legacy-block--aside-start .product-legacy-block__body--split > * {
    direction: ltr;
}

.product-legacy-block__aside {
    margin: 0;
}

.product-legacy-block__aside .product-legacy-figures--stack {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
    justify-items: center;
}

.product-legacy-block__aside .product-legacy-figures__item {
    width: 100%;
    max-width: 220px;
    text-align: center;
}

.product-legacy-block__aside .product-legacy-figures__item img {
    max-width: 100%;
    margin-inline: auto;
    border: none;
    border-radius: 0;
    background: transparent;
}

.product-legacy-block__aside .product-legacy-figures__item figcaption {
    margin-top: 6px;
    text-align: center;
    font-size: 0.82rem;
    color: #000;
}

.product-legacy-block__after {
    margin-top: 28px;
}

.product-legacy-block__after-lead {
    margin: 0 0 14px;
    font-size: 0.92rem;
    line-height: 1.8;
    color: #000;
    text-align: center;
}

@media (min-width: 900px) {
    .product-legacy-block--with-rail > .product-legacy-block__frame {
        grid-template-columns: 160px minmax(0, 1fr);
        gap: 28px;
    }

    .product-legacy-block--rail-end > .product-legacy-block__frame {
        grid-template-columns: minmax(0, 1fr) 160px;
    }

    .product-legacy-block__body--split {
        grid-template-columns: minmax(0, 1.55fr) minmax(180px, 240px);
        gap: 32px;
    }

    .product-legacy-block--with-rail .product-legacy-block__body--split {
        grid-template-columns: minmax(0, 1.35fr) minmax(180px, 220px);
    }

    .page-poster-preparation .product-legacy-block--split .product-legacy-block__body--split {
        grid-template-columns: minmax(0, 1fr) 220px;
    }

    .product-legacy-block__rail img {
        max-width: 177px;
    }
}

.page-poster-preparation .product-legacy-block__text,
.page-poster-zero-yen .product-legacy-block__text,
.page-poster-sizes .product-legacy-block__text {
    line-height: 2;
    font-size: 0.95rem;
}

.page-poster-preparation .product-legacy-block__aside figcaption,
.page-poster-zero-yen .product-legacy-block__aside figcaption,
.page-poster-sizes .product-legacy-block__aside figcaption {
    text-align: center;
}

.product-legacy-block__title {
    margin: 0 0 12px;
    padding-bottom: 8px;
    font-size: 1.05rem;
    font-weight: 700;
    color: #00838f;
    border-bottom: 2px solid #e6f4f6;
}

.product-legacy-block__text {
    margin: 0 0 12px;
    line-height: 1.9;
    font-size: 0.94rem;
    color: #333;
}

.product-legacy-block__list {
    margin: 0 0 14px;
    padding-left: 1.25rem;
    line-height: 1.8;
    font-size: 0.94rem;
}

.product-legacy-figures {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 14px;
}

.product-legacy-figures__item {
    margin: 0;
    min-width: 0;
}

.product-legacy-figures__item--full {
    grid-column: 1 / -1;
}

.product-legacy-figures__item--narrow {
    grid-column: 1 / -1;
    justify-self: center;
    width: 100%;
    max-width: 220px;
}

.product-legacy-figures__item img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    border: 1px solid #e8e8e8;
    border-radius: 6px;
    background: #fafafa;
}

.product-legacy-figures__item--annotated {
    max-width: 895px;
    width: 100%;
    margin-inline: auto;
    container-type: inline-size;
}

.product-legacy-figures__canvas {
    position: relative;
    width: 100%;
}

.product-legacy-figures__item--annotated .product-legacy-figures__canvas img {
    border-radius: 0;
}

.product-legacy-figures__label {
    position: absolute;
    left: calc(var(--ox) * 1%);
    top: calc(var(--oy) * 1%);
    width: calc(var(--ow) * 1%);
    color: #000;
    font-weight: 700;
    font-size: calc(100cqw * 21 / 895);
    line-height: calc(100cqw * 26 / 895);
    text-align: left;
    pointer-events: none;
}

.product-legacy-figures__label--sm {
    font-weight: 400;
    font-size: calc(100cqw * 12 / 895);
    line-height: 1.45;
}

.product-legacy-figures__item figcaption {
    margin-top: 8px;
    font-size: 0.82rem;
    line-height: 1.6;
    color: #666;
}

@media (min-width: 768px) {
    .product-legacy-figures {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* 旧HTML準拠：色ごとに本文左＋画像右の1行レイアウト */
.product-legacy-colors {
    display: flex;
    flex-direction: column;
    gap: 28px;
    margin-top: 8px;
}

.product-legacy-colors__card {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
    padding: 0 10px 4px 0;
    border: 0;
    border-right: 3px solid var(--color-accent, #e2e6ec);
    border-radius: 0;
    background: transparent;
}

.product-legacy-colors__body {
    min-width: 0;
}

.product-legacy-colors__card h4 {
    margin: 0 0 10px;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.4;
    color: var(--color-accent, #333);
}

.product-legacy-colors__text {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.95;
    color: #000;
}

.product-legacy-colors__figure {
    margin: 0;
    text-align: center;
}

.product-legacy-colors__figure img {
    display: block;
    width: min(200px, 100%);
    height: auto;
    margin: 0 auto 6px;
    border-radius: 0;
}

.product-legacy-colors__figure figcaption {
    margin: 0;
    font-size: 0.78rem;
    font-weight: 400;
    color: #333;
    line-height: 1.4;
}

@media (min-width: 720px) {
    .product-legacy-colors__card {
        grid-template-columns: minmax(0, 1fr) 200px;
        gap: 20px 24px;
        align-items: start;
    }
}

/* 選挙カー看板（car-kit） */
.car-kit-section-title {
    margin: 0 0 16px;
    font-size: clamp(1.1rem, 2.8vw, 1.35rem);
    font-weight: 700;
    color: #e67e22;
    line-height: 1.45;
}

.car-kit-promo {
    margin-top: 24px;
    padding: 18px 20px;
    border-radius: 999px;
    background: linear-gradient(135deg, #ff6600 0%, #e85d04 100%);
    color: #fff;
    text-align: center;
}

.car-kit-promo__title {
    margin: 0 0 8px;
    font-size: clamp(1rem, 2.5vw, 1.2rem);
    font-weight: 700;
}

.car-kit-promo__text {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.75;
}

.car-kit-gallery {
    margin-top: 24px;
}

.car-kit-gallery__main {
    margin: 0;
    text-align: center;
}

.car-kit-gallery__main-btn {
    display: block;
    width: 100%;
    max-width: 652px;
    margin: 0 auto;
    padding: 0;
    border: none;
    background: none;
    cursor: zoom-in;
}

.car-kit-gallery__main img,
.car-kit-gallery__main-btn img {
    display: block;
    width: 100%;
    max-width: 652px;
    height: auto;
    margin: 0 auto;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
}

.car-kit-gallery__main figcaption {
    margin-top: 10px;
    font-size: 0.88rem;
    color: #666;
}

.car-kit-gallery__thumbs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
}

@media (min-width: 640px) {
    .car-kit-gallery__thumbs {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
}

.car-kit-gallery__thumb {
    margin: 0;
    padding: 0;
    border: 2px solid transparent;
    border-radius: 6px;
    background: none;
    cursor: pointer;
    transition: border-color 0.15s ease;
}

.car-kit-gallery__thumb.is-active,
.car-kit-gallery__thumb:hover,
.car-kit-gallery__thumb:focus-visible {
    border-color: #e67e22;
    outline: none;
}

.car-kit-gallery__thumb img {
    display: block;
    width: 100%;
    height: auto;
    border: 1px solid #e8e8e8;
    border-radius: 4px;
}

.car-kit-tagline {
    margin: 24px 0 0;
    font-size: 1rem;
    font-weight: 700;
    color: #3399ff;
    text-align: center;
}

.car-kit-customers {
    margin-top: 20px;
}

.car-kit-customers__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

@media (min-width: 768px) {
    .car-kit-customers__grid {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
}

.car-kit-customers__item {
    margin: 0;
    padding: 0;
    border: 2px solid transparent;
    border-radius: 6px;
    background: none;
    cursor: zoom-in;
    transition: border-color 0.15s ease;
}

.car-kit-customers__item:hover,
.car-kit-customers__item:focus-visible {
    border-color: #e67e22;
    outline: none;
}

.car-kit-customers__item img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 4px;
}

.car-kit-lightbox {
    width: min(96vw, 960px);
    max-width: 96vw;
    max-height: 96vh;
    padding: 0;
    border: none;
    border-radius: 12px;
    background: transparent;
}

.car-kit-lightbox::backdrop {
    background: rgba(8, 18, 32, 0.82);
}

.car-kit-lightbox__inner {
    position: relative;
    padding: 16px 16px 12px;
    border-radius: 12px;
    background: #fff;
}

.car-kit-lightbox__close {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 2;
    width: 36px;
    height: 36px;
    border: none;
    border-radius: 50%;
    font-size: 1.4rem;
    line-height: 1;
    color: #fff;
    background: rgba(0, 0, 0, 0.55);
    cursor: pointer;
}

.car-kit-lightbox__nav {
    position: absolute;
    top: 50%;
    z-index: 2;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    border: none;
    border-radius: 50%;
    font-size: 1.6rem;
    line-height: 1;
    color: #fff;
    background: rgba(0, 0, 0, 0.5);
    cursor: pointer;
}

.car-kit-lightbox__nav--prev {
    left: 8px;
}

.car-kit-lightbox__nav--next {
    right: 8px;
}

.car-kit-lightbox__figure {
    margin: 0;
}

.car-kit-lightbox__image {
    display: block;
    max-width: 100%;
    max-height: 78vh;
    margin: 0 auto;
    object-fit: contain;
}

.car-kit-lightbox__caption {
    margin-top: 10px;
    font-size: 0.88rem;
    text-align: center;
    color: #5a6b7d;
}

.car-kit-lightbox__counter {
    margin: 4px 0 0;
    font-size: 0.8rem;
    text-align: center;
    color: #8896a6;
}

.car-kit-size-guide {
    margin-top: 8px;
}

.car-kit-size-guide__lead {
    margin: 0 0 16px;
    font-size: 0.94rem;
    line-height: 1.75;
}

.car-kit-size-guide__grid {
    display: grid;
    gap: 14px;
}

@media (min-width: 768px) {
    .car-kit-size-guide__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1100px) {
    .car-kit-size-guide__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.car-kit-size-guide__card {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 16px;
    border: 1px solid #e4e8ee;
    border-radius: 10px;
    background: #fafbfc;
}

.car-kit-size-guide__label {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: #1c2d42;
}

.car-kit-size-guide__examples {
    margin: 0;
    font-size: 0.82rem;
    color: #667788;
    line-height: 1.5;
}

.car-kit-size-guide__recommend {
    margin: 4px 0 0;
    padding: 10px 12px;
    border-radius: 8px;
    background: #fff7ef;
    border: 1px solid #f0d7b8;
}

.car-kit-size-guide__recommend-label {
    display: block;
    margin-bottom: 4px;
    font-size: 0.75rem;
    color: #a05a1a;
    font-weight: 700;
}

.car-kit-size-guide__recommend strong {
    font-size: 0.98rem;
    color: #1c2d42;
}

.car-kit-size-guide__height {
    margin: 0;
    font-size: 0.8rem;
    color: #667788;
    line-height: 1.5;
}

.car-kit-size-guide__prices {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin: 4px 0 0;
}

.car-kit-size-guide__prices dt {
    font-size: 0.72rem;
    color: #8896a6;
}

.car-kit-size-guide__prices dd {
    margin: 2px 0 0;
    font-size: 0.92rem;
    font-weight: 700;
    color: #c0392b;
}

.car-kit-size-guide__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: auto;
    padding-top: 8px;
}

.car-kit-size-guide__actions .btn {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 0.8rem;
    padding: 8px 10px;
}

.car-kit-size-guide__note {
    margin: 14px 0 0;
    font-size: 0.84rem;
    color: #667788;
    line-height: 1.7;
}

.car-kit-kit-compare__grid {
    display: grid;
    gap: 14px;
}

@media (min-width: 768px) {
    .car-kit-kit-compare__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.car-kit-kit-compare__card {
    position: relative;
    padding: 18px 16px 16px;
    border: 1px solid #e4e8ee;
    border-radius: 10px;
    background: #fff;
}

.car-kit-kit-compare__card.is-recommended {
    border-color: #e67e22;
    box-shadow: 0 0 0 1px rgba(230, 126, 34, 0.25);
}

.car-kit-kit-compare__badge {
    position: absolute;
    top: 10px;
    right: 10px;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    color: #fff;
    background: #e67e22;
}

.car-kit-kit-compare__title {
    margin: 0 0 6px;
    font-size: 1.05rem;
}

.car-kit-kit-compare__price {
    margin: 0 0 10px;
    font-size: 1.1rem;
    font-weight: 700;
    color: #c0392b;
}

.car-kit-kit-compare__includes {
    margin: 0 0 10px;
    padding-left: 1.1em;
    font-size: 0.88rem;
    line-height: 1.7;
    color: #334455;
}

.car-kit-kit-compare__for {
    margin: 0;
    font-size: 0.84rem;
    line-height: 1.65;
    color: #556677;
}

.car-kit-size-glossary {
    margin: 0 0 18px;
    padding: 14px 16px;
    border-radius: 10px;
    background: #f4f7fa;
}

.car-kit-size-glossary__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 10px;
}

@media (min-width: 768px) {
    .car-kit-size-glossary__list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.car-kit-size-glossary__list li {
    display: grid;
    gap: 4px;
    padding: 10px 12px;
    border-radius: 8px;
    background: #fff;
    border: 1px solid #e4e8ee;
}

.car-kit-size-glossary__symbol {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 6px;
    font-weight: 800;
    color: #fff;
    background: #1c2d42;
}

.car-kit-size-glossary__label {
    font-weight: 700;
    font-size: 0.9rem;
}

.car-kit-size-glossary__desc {
    font-size: 0.8rem;
    line-height: 1.55;
    color: #667788;
}

.car-kit-size-glossary__note {
    margin: 10px 0 0;
    font-size: 0.82rem;
    color: #667788;
}

.car-kit-panel-size {
    margin-top: 28px;
    padding-top: 8px;
}

.car-kit-panel-size__lead {
    margin: 0 0 14px;
    font-size: 0.92rem;
    line-height: 1.7;
    color: #334455;
}

.car-kit-panel-size__controls {
    margin: 0 0 16px;
}

.car-kit-panel-size__field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-width: 360px;
    font-size: 0.86rem;
    font-weight: 600;
    color: #1c2d42;
}

.car-kit-panel-size__field select {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #d5dbe3;
    border-radius: 8px;
    background: #fff;
    font-size: 0.92rem;
    font-weight: 500;
}

.car-kit-panel-size__layout {
    display: grid;
    gap: 16px;
}

@media (min-width: 900px) {
    .car-kit-panel-size__layout {
        grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
        align-items: stretch;
    }
}

.car-kit-panel-size__diagram {
    padding: 14px;
    border: 1px solid #e4e8ee;
    border-radius: 12px;
    background: linear-gradient(180deg, #f7f9fc 0%, #eef2f7 100%);
}

.car-kit-panel-size__svg {
    display: block;
    width: 100%;
    height: auto;
}

.car-kit-panel-size__roof {
    fill: #dce3ec;
    stroke: #9aa8b8;
    stroke-width: 1.5;
}

.car-kit-panel-size__roof-label {
    fill: #6a7b8d;
    font-size: 13px;
    font-weight: 600;
}

.car-kit-panel-size__panel--long {
    fill: #243b55;
}

.car-kit-panel-size__panel--short {
    fill: #b50400;
}

.car-kit-panel-size__dim {
    fill: #1c2d42;
    font-size: 11px;
    font-weight: 700;
}

.car-kit-panel-size__caption {
    fill: #5a6b7d;
    font-size: 12px;
    font-weight: 600;
}

.car-kit-panel-size__cards {
    display: grid;
    gap: 12px;
}

.car-kit-panel-size__card {
    padding: 16px;
    border: 1px solid #e4e8ee;
    border-radius: 10px;
    background: #fafbfc;
}

.car-kit-panel-size__card h4 {
    margin: 0 0 8px;
    font-size: 0.92rem;
    color: #1c2d42;
}

.car-kit-panel-size__measure {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 800;
    color: #1c2d42;
    letter-spacing: 0.02em;
}

.car-kit-panel-size__count {
    margin: 4px 0 12px;
    font-size: 0.82rem;
    color: #667788;
}

.car-kit-panel-size__bar {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    padding: 10px 12px;
    border-radius: 6px;
    font-size: 0.8rem;
    font-weight: 700;
    color: #fff;
}

.car-kit-panel-size__bar--long {
    background: #243b55;
}

.car-kit-panel-size__bar--short {
    background: #b50400;
}

.car-kit-panel-size__formula,
.car-kit-panel-size__example {
    margin: 12px 0 0;
    font-size: 0.84rem;
    line-height: 1.65;
    color: #667788;
}

.car-kit-panel-size__example {
    font-weight: 600;
    color: #334455;
}

.car-kit-total-examples {
    margin: 0 0 20px;
}

.car-kit-total-examples__card {
    padding: 16px 18px;
    border-radius: 10px;
    border: 1px solid #f0d7b8;
    background: linear-gradient(180deg, #fffaf3 0%, #fff 100%);
}

.car-kit-total-examples__title {
    margin: 0 0 10px;
    font-size: 0.98rem;
}

.car-kit-total-examples__lines {
    margin: 0 0 10px;
    padding-left: 1.1em;
    font-size: 0.9rem;
    line-height: 1.7;
    color: #334455;
}

.car-kit-total-examples__total {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 800;
    color: #c0392b;
}

.car-kit-total-examples__note {
    margin: 8px 0 0;
    font-size: 0.8rem;
    color: #667788;
    line-height: 1.6;
}

.car-kit-assembly-overview {
    margin-top: 4px;
}

.car-kit-assembly-overview__facts {
    display: grid;
    gap: 10px;
    margin: 0;
}

@media (min-width: 640px) {
    .car-kit-assembly-overview__facts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 960px) {
    .car-kit-assembly-overview__facts {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.car-kit-assembly-overview__facts > div {
    padding: 12px 14px;
    border: 1px solid #e4e8ee;
    border-radius: 8px;
    background: #fafbfc;
}

.car-kit-assembly-overview__facts dt {
    margin: 0 0 4px;
    font-size: 0.75rem;
    font-weight: 700;
    color: #8896a6;
}

.car-kit-assembly-overview__facts dd {
    margin: 0;
    font-size: 0.92rem;
    font-weight: 600;
    color: #1c2d42;
    line-height: 1.5;
}

.car-kit-assembly-overview__checklist {
    margin-top: 18px;
}

.car-kit-assembly-overview__checklist ul {
    margin: 0;
    padding-left: 1.2em;
    font-size: 0.9rem;
    line-height: 1.75;
    color: #334455;
}

.car-kit-price-section,
.car-kit-assembly,
.car-kit-panel-swap,
.car-kit-carrier,
.car-kit-car-size {
    scroll-margin-top: 88px;
}

.car-kit-price-section {
    margin-top: 36px;
    scroll-margin-top: 88px;
}

.car-kit-price-section__note {
    margin: 0 0 16px;
    font-size: 0.88rem;
    color: #666;
}

.car-kit-price-table + .car-kit-price-table {
    margin-top: 28px;
}

.car-kit-price-table__title {
    margin: 0 0 8px;
    font-size: 1rem;
    font-weight: 700;
    color: #333;
}

.car-kit-price-table__figure {
    margin: 0 0 14px;
    max-width: 320px;
}

.car-kit-price-table__figure img {
    display: block;
    width: 100%;
    height: auto;
}

.car-kit-price-table__footnote {
    margin: 10px 0 0;
    font-size: 0.88rem;
    color: #666;
    text-align: right;
}

.car-kit-price-notes {
    margin: 16px 0 0;
    padding-left: 1.2em;
    font-size: 0.84rem;
    line-height: 1.75;
    color: #666;
}

.car-kit-shop-link {
    margin: 20px 0 0;
    text-align: center;
}

.car-kit-basic-set {
    margin-top: 36px;
}

.car-kit-basic-set__figure {
    margin: 0;
    text-align: center;
}

.car-kit-basic-set__figure img {
    display: block;
    width: 100%;
    max-width: 652px;
    height: auto;
    margin: 0 auto;
}

.car-kit-assembly {
    margin-top: 36px;
    scroll-margin-top: 88px;
}

.car-kit-assembly__lead {
    margin: 0 0 20px;
    font-size: 0.94rem;
    line-height: 1.8;
    text-align: center;
    font-weight: 600;
}

.car-kit-assembly__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 20px;
}

.car-kit-assembly__step {
    display: grid;
    gap: 16px;
    padding: 16px;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
    background: #fafafa;
}

@media (min-width: 768px) {
    .car-kit-assembly__step {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        align-items: center;
    }

    .car-kit-assembly__step--right .car-kit-assembly__image {
        order: 2;
    }

    .car-kit-assembly__step--right .car-kit-assembly__body {
        order: 1;
    }
}

.car-kit-assembly__image {
    margin: 0;
}

.car-kit-assembly__image img {
    display: block;
    width: 100%;
    max-width: 400px;
    height: auto;
    margin: 0 auto;
    border: 1px solid #ddd;
    border-radius: 5px;
}

.car-kit-assembly__title {
    margin: 0 0 10px;
    font-size: 1rem;
    font-weight: 700;
    color: #e67e22;
}

.car-kit-assembly__desc {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.8;
    color: #333;
}

.car-kit-assembly__warning {
    margin: 12px 0 0;
    padding: 12px;
    font-size: 0.84rem;
    line-height: 1.7;
    color: #663333;
    border: 2px solid #ff6633;
    border-radius: 5px;
    background: #fff5f5;
}

.car-kit-assembly__contact {
    margin: 20px 0 0;
    font-size: 0.88rem;
    text-align: center;
    color: #666;
}

.car-kit-panel-swap {
    margin-top: 36px;
    scroll-margin-top: 88px;
}

.car-kit-panel-swap__subtitle {
    margin: 0 0 12px;
    font-size: 1rem;
    font-weight: 700;
    text-align: center;
    color: #333;
}

.car-kit-panel-swap__solution {
    margin: 24px 0 12px;
    font-size: 1rem;
    font-weight: 700;
    text-align: center;
    color: #e67e22;
}

.car-kit-panel-swap__list {
    margin: 0 0 12px;
    padding-left: 1.25em;
    line-height: 1.8;
    font-size: 0.92rem;
}

.car-kit-panel-swap__note {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 600;
}

.car-kit-panel-swap__images {
    display: grid;
    gap: 14px;
    margin-top: 20px;
}

@media (min-width: 640px) {
    .car-kit-panel-swap__images {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.car-kit-panel-swap__figure {
    margin: 0;
}

.car-kit-panel-swap__figure img {
    display: block;
    width: 100%;
    height: auto;
    border: 1px solid #e8e8e8;
    border-radius: 6px;
}

.car-kit-sound {
    margin-top: 36px;
}

.car-kit-sound__lead {
    margin: 0 0 20px;
    font-size: 0.92rem;
    font-weight: 600;
    text-align: center;
    color: #333;
}

.car-kit-sound__item + .car-kit-sound__item {
    margin-top: 24px;
}

.car-kit-sound__item-title {
    margin: 0 0 12px;
    font-size: 0.92rem;
    font-weight: 700;
    text-align: center;
}

.car-kit-sound__figure {
    margin: 0;
    text-align: center;
}

.car-kit-sound__figure img {
    display: block;
    width: 100%;
    max-width: 810px;
    height: auto;
    margin: 0 auto;
}

.car-kit-order-pdf {
    margin: 28px 0 0;
    text-align: center;
}

.car-kit-carrier {
    margin-top: 8px;
    scroll-margin-top: 88px;
}

.car-kit-carrier__points {
    display: grid;
    gap: 10px;
    margin: 0 0 18px;
}

.car-kit-carrier__point {
    margin: 0;
    padding: 12px 14px;
    font-size: 0.92rem;
    line-height: 1.75;
    color: #243447;
    background: #f5f7fa;
    border-left: 3px solid #1c2d42;
}

.car-kit-carrier__notice {
    display: block;
    margin-top: 6px;
    font-size: 0.88rem;
    font-weight: 600;
    color: #666;
}

.car-kit-carrier__text {
    margin: 0 0 12px;
    font-size: 0.9rem;
    line-height: 1.8;
}

.car-kit-carrier__images {
    display: grid;
    gap: 14px;
    margin: 0 0 18px;
}

@media (min-width: 640px) {
    .car-kit-carrier__images {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.car-kit-carrier__figure {
    margin: 0;
    overflow: hidden;
    border: 1px solid #e4e8ee;
    border-radius: 8px;
    background: #fff;
}

.car-kit-carrier__figure img {
    display: block;
    width: 100%;
    height: auto;
}

.car-kit-carrier__link {
    margin: 0 0 20px;
    font-size: 0.9rem;
    line-height: 1.75;
    color: #334455;
}

.car-kit-carrier__brands-title {
    margin: 0 0 12px;
    font-size: 0.95rem;
    font-weight: 700;
    color: #1c2d42;
}

.car-kit-carrier__brands {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 768px) {
    .car-kit-carrier__brands {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.car-kit-carrier__brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 108px;
    padding: 14px 12px;
    text-decoration: none;
    color: #1c2d42;
    border: 1px solid #e4e8ee;
    border-radius: 8px;
    background: #fafbfc;
    transition: border-color 0.15s ease, background-color 0.15s ease;
}

.car-kit-carrier__brand:hover,
.car-kit-carrier__brand:focus-visible {
    border-color: #1c2d42;
    background: #fff;
    outline: none;
}

.car-kit-carrier__brand img {
    display: block;
    width: 100%;
    max-width: 120px;
    height: auto;
}

.car-kit-carrier__brand span {
    font-size: 0.8rem;
    font-weight: 600;
    text-align: center;
    line-height: 1.35;
}

.car-kit-carrier__footer {
    margin: 16px 0 0;
    font-size: 0.84rem;
    color: #666;
}

.car-kit-car-size {
    margin-top: 8px;
    scroll-margin-top: 88px;
}

.car-kit-car-size__group + .car-kit-car-size__group {
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid #e8ecef;
}

.car-kit-car-size__group-title {
    margin: 0 0 14px;
    font-size: 1rem;
    font-weight: 700;
    color: #1c2d42;
}

.car-kit-car-size__grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 720px) {
    .car-kit-car-size__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .car-kit-car-size__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.car-kit-car-size__item {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 10px;
    height: 100%;
    padding: 12px;
    text-decoration: none;
    color: #1c2d42;
    border: 1px solid #e4e8ee;
    border-radius: 10px;
    background: #fafbfc;
    transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

.car-kit-car-size__thumb {
    display: block;
    overflow: hidden;
    border-radius: 6px;
    background: #fff;
    border: 1px solid #edf0f3;
}

.car-kit-car-size__thumb img,
.car-kit-car-size__item > img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: contain;
    background: #fff;
}

.car-kit-car-size__label {
    display: block;
    flex: 1;
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.45;
    text-align: center;
}

.car-kit-car-size__badge {
    display: inline-flex;
    align-self: center;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    padding: 3px 8px;
    border-radius: 4px;
    background: #1c2d42;
    color: #fff;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.car-kit-car-size__item:hover,
.car-kit-car-size__item:focus-visible {
    border-color: #1c2d42;
    background: #fff;
    box-shadow: 0 4px 14px rgba(28, 45, 66, 0.08);
    outline: none;
}

.car-kit-pdf-modal {
    width: min(96vw, 1080px);
    max-width: 96vw;
    height: min(92vh, 900px);
    max-height: 92vh;
    padding: 0;
    border: none;
    border-radius: 12px;
    background: transparent;
}

.car-kit-pdf-modal::backdrop {
    background: rgba(8, 18, 32, 0.82);
}

.car-kit-pdf-modal__inner {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    border-radius: 12px;
    background: #fff;
}

.car-kit-pdf-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    border-bottom: 1px solid #e4e8ee;
}

.car-kit-pdf-modal__title {
    margin: 0;
    flex: 1;
    min-width: 0;
    font-size: 0.98rem;
    font-weight: 700;
    color: #1c2d42;
    line-height: 1.4;
}

.car-kit-pdf-modal__actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.car-kit-pdf-modal__open {
    display: inline-flex;
    align-items: center;
    padding: 6px 10px;
    border: 1px solid #d5dbe3;
    border-radius: 6px;
    font-size: 0.78rem;
    font-weight: 600;
    text-decoration: none;
    color: #1c2d42;
    background: #f5f7fa;
}

.car-kit-pdf-modal__open:hover,
.car-kit-pdf-modal__open:focus-visible {
    border-color: #1c2d42;
    outline: none;
}

.car-kit-pdf-modal__close {
    width: 36px;
    height: 36px;
    border: none;
    border-radius: 50%;
    font-size: 1.4rem;
    line-height: 1;
    color: #fff;
    background: rgba(28, 45, 66, 0.85);
    cursor: pointer;
}

.car-kit-pdf-modal__body {
    flex: 1;
    min-height: 0;
    background: #eef1f5;
}

.car-kit-pdf-modal__frame {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 70vh;
    border: 0;
    background: #fff;
}

@media (max-width: 640px) {
    .car-kit-pdf-modal {
        width: 100vw;
        max-width: 100vw;
        height: 100vh;
        max-height: 100vh;
        border-radius: 0;
    }

    .car-kit-pdf-modal__inner {
        border-radius: 0;
    }

    .car-kit-pdf-modal__title {
        font-size: 0.88rem;
    }

    .car-kit-pdf-modal__open {
        font-size: 0.72rem;
        padding: 5px 8px;
    }
}

/* --- 選挙立て看板（youhin.html レガシー） --- */

.page-signs .signs-legacy-promo {
    margin: 28px 0 20px;
    padding: 20px 24px;
    text-align: center;
    border: 2px solid #c41e3a;
    border-radius: 8px;
    background: #fff8f8;
}

.page-signs .signs-legacy-promo__title {
    margin: 0 0 8px;
    font-size: clamp(1.05rem, 2.5vw, 1.25rem);
    font-weight: 700;
    color: #c41e3a;
    line-height: 1.5;
}

.page-signs .signs-legacy-promo__subtitle {
    margin: 0;
    font-size: 0.92rem;
    color: #555;
}

.page-signs .signs-legacy-new-style {
    margin: 24px 0;
    padding: 20px;
    text-align: center;
    border-radius: 8px;
    background: linear-gradient(135deg, #1a3a5c 0%, #2d5a87 100%);
    color: #fff;
}

.page-signs .signs-legacy-new-style__badge {
    display: inline-block;
    margin: 0 0 10px;
    padding: 4px 14px;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    border-radius: 999px;
    background: #c41e3a;
}

.page-signs .signs-legacy-new-style__title {
    margin: 0 0 6px;
    font-size: clamp(1.1rem, 2.8vw, 1.4rem);
    font-weight: 700;
}

.page-signs .signs-legacy-new-style__subtitle,
.page-signs .signs-legacy-new-style__lead {
    margin: 0 0 6px;
    font-size: 0.9rem;
    line-height: 1.7;
    opacity: 0.95;
}

.page-signs .signs-legacy-template {
    margin: 16px 0 24px;
    text-align: center;
}

.page-signs .signs-legacy-template a {
    font-weight: 600;
    color: #1a5fb4;
}

.page-signs .signs-legacy-section {
    margin-top: 40px;
    padding-top: 32px;
    border-top: 1px solid #e8e8e8;
    scroll-margin-top: 88px;
}

.page-signs .signs-legacy-section__banner {
    margin-bottom: 20px;
    padding: 14px 18px;
    border-left: 4px solid #c41e3a;
    background: #f7f9fb;
}

.page-signs .signs-legacy-section__banner-title {
    margin: 0;
    font-size: clamp(0.95rem, 2.2vw, 1.1rem);
    font-weight: 700;
    color: #1a3a5c;
    line-height: 1.55;
}

.page-signs .signs-legacy-section--dark .signs-legacy-section__banner {
    border-left-color: #333;
    background: #f0f0f0;
}

.page-signs .signs-legacy-campaign {
    display: grid;
    gap: 20px;
    margin-bottom: 24px;
}

@media (min-width: 768px) {
    .page-signs .signs-legacy-campaign {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
        align-items: start;
    }
}

.page-signs .signs-legacy-campaign__banner img,
.page-signs .signs-legacy-campaign__price img {
    display: block;
    width: 100%;
    height: auto;
}

.page-signs .signs-legacy-campaign__icons {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 12px;
}

.page-signs .signs-legacy-campaign__icons img {
    max-width: 80px;
    height: auto;
}

.page-signs .signs-legacy-campaign__points {
    margin: 0 0 12px;
    padding-left: 1.25rem;
    line-height: 1.85;
    font-size: 0.92rem;
}

.page-signs .signs-legacy-section__hero img,
.page-signs .signs-legacy-section__badge-image img,
.page-signs .signs-legacy-section__price-image img,
.page-signs .signs-legacy-section__diagram img {
    display: block;
    width: 100%;
    max-width: 720px;
    height: auto;
    margin: 0 auto;
}

.page-signs .signs-legacy-section__grid {
    display: grid;
    gap: 24px;
}

@media (min-width: 768px) {
    .page-signs .signs-legacy-section__grid {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        align-items: start;
    }
}

.page-signs .signs-legacy-section__body p {
    margin: 0 0 12px;
    line-height: 1.85;
    font-size: 0.94rem;
    color: #333;
}

.page-signs .signs-legacy-section__example {
    font-weight: 600;
    color: #1a5fb4;
}

.page-signs .signs-legacy-section__price-lines {
    margin: 12px 0;
    padding-left: 1.25rem;
    line-height: 1.8;
    font-size: 0.92rem;
}

.page-signs .signs-legacy-price-items {
    display: grid;
    gap: 16px;
    margin-top: 16px;
}

@media (min-width: 480px) {
    .page-signs .signs-legacy-price-items {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.page-signs .signs-legacy-price-items__item {
    margin: 0;
    text-align: center;
}

.page-signs .signs-legacy-price-items__item img {
    display: block;
    width: 100%;
    height: auto;
}

.page-signs .signs-legacy-price-items__item figcaption {
    margin-top: 6px;
    font-size: 0.82rem;
    color: #666;
}

.page-signs .signs-legacy-section__size-note {
    margin: 12px 0 0;
    font-size: 0.88rem;
    color: #666;
}

.page-signs .signs-legacy-price-compare {
    display: grid;
    gap: 20px;
    margin-top: 16px;
}

@media (min-width: 640px) {
    .page-signs .signs-legacy-price-compare {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.page-signs .signs-legacy-price-compare__group h3 {
    margin: 0 0 10px;
    font-size: 0.95rem;
    font-weight: 700;
    color: #1a3a5c;
}

.page-signs .signs-legacy-price-compare__lead {
    margin: 0 0 8px;
    font-size: 0.88rem;
    line-height: 1.7;
    color: #444;
}

.page-signs .signs-legacy-related-link {
    margin: 20px 0 0;
    text-align: center;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .product-related-carousel {
    margin: 36px 0 8px;
    padding: 20px 0 8px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .product-related-carousel__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 14px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .product-related-carousel__title {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 700;
    color: #1f2937;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .product-related-carousel__controls {
    display: flex;
    gap: 8px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .product-related-carousel__btn {
    width: 40px;
    height: 40px;
    border: 1px solid #d1d5db;
    border-radius: 999px;
    background: #fff;
    color: #334155;
    font-size: 1.35rem;
    line-height: 1;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .product-related-carousel__btn:hover,
:is(.page-night-sign, .page-standard-sign, .page-car-kit) .product-related-carousel__btn:focus-visible {
    border-color: #b91c1c;
    color: #b91c1c;
    outline: none;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .product-related-carousel__viewport {
    overflow: hidden;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .product-related-carousel__track {
    display: flex;
    gap: 14px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    padding: 4px 2px 12px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .product-related-carousel__card {
    flex: 0 0 min(280px, 78vw);
    scroll-snap-align: start;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .product-related-carousel__card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.1);
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .product-related-carousel__card-link {
    display: flex;
    flex-direction: column;
    height: 100%;
    color: inherit;
    text-decoration: none;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .product-related-carousel__image {
    margin: 0;
    aspect-ratio: 4 / 3;
    background: #f3f4f6;
    overflow: hidden;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .product-related-carousel__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .product-related-carousel__body {
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1;
    padding: 14px 14px 16px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .product-related-carousel__badge {
    align-self: flex-start;
    padding: 2px 8px;
    border-radius: 999px;
    background: #fef2f2;
    color: #b91c1c;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .product-related-carousel__card-title {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    color: #111827;
    line-height: 1.35;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .product-related-carousel__desc {
    margin: 0;
    font-size: 0.86rem;
    line-height: 1.55;
    color: #4b5563;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .product-related-carousel__price {
    margin: 2px 0 0;
    font-size: 0.9rem;
    font-weight: 700;
    color: #1f2937;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .product-related-carousel__cta {
    margin-top: auto;
    padding-top: 8px;
    font-size: 0.86rem;
    font-weight: 700;
    color: #b91c1c;
}

@media (min-width: 900px) {
    :is(.page-night-sign, .page-standard-sign, .page-car-kit) .product-related-carousel__card {
        flex-basis: calc((100% - 42px) / 3);
    }
}

.page-signs .signs-legacy-price-compare__item {
    margin: 0 0 12px;
}

.page-signs .signs-legacy-price-compare__item img {
    display: block;
    width: 100%;
    height: auto;
}

.page-signs .signs-legacy-price-compare__item figcaption {
    margin-top: 6px;
    font-size: 0.82rem;
    color: #555;
}

.page-signs .signs-legacy-estimate {
    margin-top: 20px;
    padding: 16px;
    border: 1px solid #e2e6ec;
    border-radius: 8px;
    background: #fafbfc;
}

.page-signs .signs-legacy-estimate__title {
    margin: 0 0 14px;
    font-size: 1rem;
    font-weight: 700;
    color: #1a3a5c;
}

.page-signs .signs-legacy-estimate__grid {
    display: grid;
    gap: 20px;
}

@media (min-width: 900px) {
    .page-signs .signs-legacy-estimate__grid {
        grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    }
}

.page-signs .signs-legacy-estimate__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.page-signs .signs-legacy-estimate__table th,
.page-signs .signs-legacy-estimate__table td {
    padding: 6px 4px;
    border-bottom: 1px solid #e8e8e8;
    text-align: center;
    vertical-align: middle;
}

.page-signs .signs-legacy-estimate__table input[type="number"] {
    width: 100%;
    max-width: 72px;
    padding: 4px 6px;
    font-size: 0.85rem;
    text-align: center;
    border: 1px solid #ccc;
    border-radius: 4px;
}

.page-signs .signs-legacy-estimate__label {
    text-align: right !important;
    font-weight: 600;
}

.page-signs .signs-legacy-estimate__note {
    margin: 10px 0 0;
    font-size: 0.82rem;
    color: #666;
}

.page-signs .signs-legacy-estimate__reference-title {
    margin: 0 0 10px;
    font-size: 0.9rem;
    font-weight: 700;
    text-align: center;
    color: #1a3a5c;
}

.page-signs .signs-legacy-estimate__reference-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.page-signs .signs-legacy-estimate__reference-table th,
.page-signs .signs-legacy-estimate__reference-table td {
    padding: 6px 8px;
    border: 1px solid #e8e8e8;
    text-align: center;
}

.page-signs .signs-legacy-law {
    margin-top: 16px;
}

.page-signs .signs-legacy-law__title {
    margin: 0 0 12px;
    font-size: 0.95rem;
    font-weight: 700;
    color: #1a3a5c;
}

.page-signs .signs-legacy-law__item {
    margin-bottom: 12px;
}

.page-signs .signs-legacy-law__item dt {
    font-weight: 700;
    font-size: 0.9rem;
    color: #333;
}

.page-signs .signs-legacy-law__item dd {
    margin: 4px 0 0;
    font-size: 0.88rem;
    line-height: 1.7;
    color: #555;
}

.page-signs .signs-legacy-law__size {
    font-weight: 600;
    color: #c41e3a;
}

.page-signs .signs-legacy-section__media {
    display: grid;
    gap: 12px;
}

.page-signs .signs-legacy-section__compare-labels {
    display: flex;
    justify-content: space-around;
    font-size: 0.85rem;
    font-weight: 600;
    color: #555;
}

.page-signs .signs-legacy-section__figure {
    margin: 0;
}

.page-signs .signs-legacy-section__figure img {
    display: block;
    width: 100%;
    height: auto;
}

.page-signs .signs-legacy-section__figure figcaption {
    margin-top: 6px;
    font-size: 0.82rem;
    color: #666;
    text-align: center;
}

.page-signs .signs-legacy-price-section {
    margin-top: 28px;
    scroll-margin-top: 88px;
}

.page-signs .signs-legacy-price-section__title {
    margin: 0 0 16px;
    font-size: 1.05rem;
    font-weight: 700;
    color: #1a3a5c;
    text-align: center;
}

.page-signs .signs-legacy-price-section__grid {
    display: grid;
    gap: 20px;
}

@media (min-width: 768px) {
    .page-signs .signs-legacy-price-section__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.page-signs .signs-legacy-price-table h4 {
    margin: 0 0 10px;
    font-size: 0.92rem;
    font-weight: 700;
    color: #333;
    text-align: center;
}

.page-signs .signs-legacy-price-table--reflection h4 {
    color: #c41e3a;
}

.page-signs .signs-legacy-price-section__notes {
    margin: 16px 0 0;
    padding-left: 1.25rem;
    font-size: 0.84rem;
    color: #666;
    line-height: 1.7;
}

.page-signs .signs-legacy-section__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 20px;
}

.page-signs .signs-legacy-section__note {
    margin: 16px 0 0;
    font-size: 0.88rem;
    color: #666;
    text-align: center;
}

.page-signs .signs-legacy-footer-note {
    margin: 32px 0 0;
    padding: 14px;
    font-size: 0.88rem;
    color: #666;
    text-align: center;
    border-top: 1px solid #e8e8e8;
}

.page-signs .signs-legacy-car-kit-promo {
    margin: 24px 0 0;
    text-align: center;
}

.page-signs .signs-legacy-car-kit-promo img {
    display: block;
    width: 100%;
    max-width: 640px;
    height: auto;
    margin: 0 auto;
}

/* --- products共通：立て看板スタイルのセクション --- */
.page-signs .signs-legacy-section.night-sign-legacy-section,
.night-sign-legacy-section {
    margin: 36px 0;
    padding: 0;
    border: none;
    background: transparent;
    scroll-margin-top: 88px;
}

.night-sign-legacy-section__header {
    margin-bottom: 18px;
    padding-bottom: 12px;
    border-bottom: 2px solid #1c2d42;
}

.night-sign-legacy-section__title {
    margin: 0;
    font-size: clamp(1.25rem, 3vw, 1.5rem);
    font-weight: 700;
    line-height: 1.4;
    color: #1c2d42;
    letter-spacing: 0.03em;
}

.night-sign-legacy-section__lead {
    margin: 8px 0 0;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--home-accent, #b50400);
}

.night-sign-legacy-section__subtitle {
    margin: 0 0 14px;
    font-size: 1.05rem;
    font-weight: 700;
    color: #333;
    line-height: 1.45;
}

.night-sign-legacy-section__badge {
    margin: 0 0 16px;
}

.night-sign-legacy-section__badge img {
    display: block;
    width: auto;
    max-width: 180px;
    height: auto;
}

.night-sign-legacy-section__intro p {
    margin: 0 0 10px;
    font-size: 0.98rem;
    line-height: 1.85;
    color: #333;
}

.night-sign-legacy-section__price-summary,
.night-sign-legacy-section__gallery,
.night-sign-legacy-section__compare,
.night-sign-legacy-section__diagram-wrap,
.night-sign-legacy-section__tables {
    margin-top: 28px;
}

.night-sign-legacy-section__price-image {
    margin: 0 0 14px;
}

.night-sign-legacy-section__price-image img {
    display: block;
    width: 100%;
    max-width: 420px;
    height: auto;
}

.night-sign-legacy-section__price-lines {
    margin: 0;
    padding-left: 1.2em;
    font-size: 0.94rem;
    line-height: 1.85;
    color: #333;
}

.night-sign-legacy-section__size-note {
    margin: 12px 0 0;
    font-size: 0.88rem;
    color: #666;
}

.night-sign-legacy-section__gallery-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: 1fr;
}

@media (min-width: 640px) {
    .night-sign-legacy-section__gallery-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        align-items: start;
    }
}

.night-sign-legacy-section__figure {
    margin: 0;
    padding: 10px;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
    background: #fff;
    text-align: center;
}

.night-sign-legacy-section__figure img {
    display: block;
    width: 100%;
    max-height: 280px;
    height: auto;
    margin: 0 auto;
    object-fit: contain;
}

.night-sign-legacy-section__figure figcaption {
    margin-top: 8px;
    font-size: 0.84rem;
    line-height: 1.5;
    color: #555;
}

.night-sign-legacy-section__compare-figure,
.night-sign-legacy-section__diagram {
    margin: 0 0 28px;
    padding: 12px;
    border: 1px solid #e8e8f0;
    border-radius: 8px;
    background: #fafafa;
}

.night-sign-legacy-section__compare-figure img,
.night-sign-legacy-section__diagram img {
    display: block;
    width: 100%;
    max-width: 900px;
    height: auto;
    margin: 0 auto;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-compare {
    display: grid;
    gap: 20px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-compare__row {
    display: grid;
    gap: 16px;
    align-items: center;
    padding: 14px;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
    background: #fff;
}

@media (min-width: 720px) {
    :is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-compare__row {
        grid-template-columns: minmax(0, 1.15fr) minmax(220px, 0.85fr);
        gap: 24px;
        padding: 18px 20px;
    }
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-compare__visual {
    margin: 0;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-compare__tags {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-bottom: 8px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-compare__tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: 4px 8px;
    border-radius: 4px;
    background: #eef1f5;
    color: #333;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-align: center;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-compare__tag.is-highlight {
    background: #ffe100;
    color: #111;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-compare__visual img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 4px;
    background: #111;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-compare__copy {
    display: grid;
    gap: 12px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-compare__eyebrow {
    margin: 0;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--home-accent, #b50400);
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-compare__lines {
    display: grid;
    gap: 4px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-compare__lines p {
    margin: 0;
    font-size: clamp(1rem, 2.4vw, 1.2rem);
    font-weight: 700;
    line-height: 1.55;
    color: #1c2d42;
    letter-spacing: 0.02em;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-compare__note {
    margin: 4px 0 0;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.5;
    color: #444;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-mechanism {
    margin: 24px 0 8px;
    padding: 18px 20px;
    border-left: 4px solid var(--home-accent, #b50400);
    background: #f7f8fa;
}

.night-sign-feature-points {
    margin: 20px 0 8px;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 10px;
}

.night-sign-feature-points li {
    position: relative;
    margin: 0;
    padding: 12px 14px 12px 40px;
    background: #f7f8fa;
    border-left: 3px solid var(--home-accent, #b50400);
    font-size: 0.98rem;
    font-weight: 600;
    line-height: 1.55;
    color: #1c2d42;
}

.night-sign-feature-points li::before {
    content: "";
    position: absolute;
    left: 14px;
    top: 1.05em;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--home-accent, #b50400);
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-mechanism__title {
    margin: 0 0 10px;
    font-size: clamp(1.05rem, 2.4vw, 1.25rem);
    font-weight: 700;
    line-height: 1.5;
    color: #1c2d42;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-mechanism__lead {
    margin: 0 0 8px;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.6;
    color: #222;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-mechanism__body {
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.7;
    color: #444;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-type-guide {
    margin: 8px 0 20px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-type-guide__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 10px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-type-guide__list li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 0.9fr);
    gap: 8px;
    align-items: center;
    padding: 12px 14px;
    background: #f7f8fa;
    border-radius: 6px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-type-guide__use {
    font-size: 0.92rem;
    color: #444;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-type-guide__arrow {
    color: #999;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-type-guide__type {
    font-size: 0.95rem;
    color: #1c2d42;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-laminate-guide {
    margin: 0 0 24px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-laminate-guide__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 10px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-laminate-guide__list li {
    display: grid;
    gap: 4px;
    padding: 12px 14px;
    background: #f7f8fa;
    border-radius: 6px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-laminate-guide__type {
    font-size: 0.95rem;
    color: #1c2d42;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-laminate-guide__desc {
    font-size: 0.9rem;
    line-height: 1.6;
    color: #555;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-laminate-guide__note {
    margin: 12px 0 0;
    padding: 12px 14px;
    border-left: 3px solid #b50400;
    background: #fff7f6;
    font-size: 0.92rem;
    line-height: 1.65;
    color: #3a2a28;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-price-unit-note {
    margin: 0 0 12px;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--home-accent, #b50400);
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-price-scroll-hint {
    display: none;
    margin: 0 0 10px;
    padding: 8px 10px;
    border-radius: 6px;
    background: #fff8e1;
    color: #6b5200;
    font-size: 0.82rem;
    font-weight: 700;
    text-align: center;
    letter-spacing: 0.02em;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-price-table-wrap {
    position: relative;
}

.night-sign-price-cards {
    display: none;
    gap: 12px;
    margin-top: 4px;
}

.night-sign-price-cards--always {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 760px) {
    .night-sign-price-cards--always {
        grid-template-columns: 1fr;
    }
}

.night-sign-price-card {
    padding: 14px 16px;
    border: 1px solid #e5e8ee;
    border-radius: 8px;
    background: #fff;
}

.night-sign-price-card__title {
    margin: 0 0 4px;
    font-size: 1rem;
    font-weight: 700;
    color: #1c2d42;
}

.night-sign-price-card__length {
    margin: 0 0 12px;
    font-size: 0.82rem;
    color: #666;
}

.night-sign-price-card__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 8px;
}

.night-sign-price-card__list li {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding-top: 8px;
    border-top: 1px solid #f0f0f0;
    font-size: 0.9rem;
}

.night-sign-price-card__list li:first-child {
    padding-top: 0;
    border-top: none;
}

.night-sign-price-card__list strong {
    color: #b50400;
    font-variant-numeric: tabular-nums;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-price-link {
    color: #b50400;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    text-decoration: underline;
    text-underline-offset: 2px;
    text-decoration-color: rgba(181, 4, 0, 0.35);
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-price-link:hover,
:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-price-link:focus-visible {
    color: #8f0300;
    text-decoration-color: currentColor;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-price-link strong {
    color: inherit;
    font-weight: inherit;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-price-trigger {
    appearance: none;
    border: 0;
    background: transparent;
    padding: 0;
    margin: 0;
    color: #1c2d42;
    font: inherit;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    text-decoration: none;
    cursor: pointer;
    text-align: right;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-price-trigger:hover,
:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-price-trigger:focus-visible {
    color: #8f0300;
    text-decoration: underline;
    text-underline-offset: 2px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-price-trigger strong {
    color: inherit;
    font-weight: inherit;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-price-stack {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    line-height: 1.25;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-price-stack__list {
    color: #333;
    font-weight: 500;
    font-size: 0.92em;
    text-decoration: line-through;
    text-decoration-thickness: 1.5px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-price-stack__sale,
:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-price-trigger--campaign .night-sign-price-stack__sale {
    color: #e10600;
    font-weight: 800;
    font-size: 1.05em;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-price-trigger--campaign:hover .night-sign-price-stack__sale,
:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-price-trigger--campaign:focus-visible .night-sign-price-stack__sale {
    color: #b50400;
}

.night-sign-cart-modal {
    margin: auto;
    width: min(440px, calc(100vw - 32px));
    padding: 0;
    border: 0;
    border-radius: 12px;
    background: transparent;
}

.night-sign-cart-modal[data-hide-laminate="1"] {
    width: min(760px, calc(100vw - 20px));
}

.night-sign-cart-modal::backdrop {
    background: rgba(20, 28, 40, 0.55);
}

.night-sign-cart-modal__inner {
    position: relative;
    padding: 28px 24px 24px;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 18px 48px rgba(16, 24, 40, 0.22);
}

.night-sign-cart-modal__close {
    position: absolute;
    top: 10px;
    right: 12px;
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 999px;
    background: #f3f5f8;
    color: #334155;
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
}

.night-sign-cart-modal__title {
    margin: 0 36px 8px 0;
    font-size: 1.15rem;
    font-weight: 700;
    color: #1c2d42;
}

.night-sign-cart-modal__meta {
    margin: 0 0 12px;
    font-size: 0.9rem;
    color: #5a6b7d;
}

.night-sign-cart-modal__price {
    margin: 0 0 4px;
    font-size: 1.35rem;
    font-weight: 800;
    color: #b50400;
}

.night-sign-cart-modal__set {
    margin: 0 0 18px;
    font-size: 0.9rem;
    color: #475569;
}

.night-sign-cart-modal__type,
.night-sign-cart-modal__pack {
    margin: 0 0 16px;
}

.night-sign-cart-modal__type[hidden],
.night-sign-cart-modal__pack[hidden] {
    display: none !important;
}

.night-sign-cart-modal__type-lead,
.night-sign-cart-modal__pack-lead {
    margin: 0 0 8px;
    font-size: 0.9rem;
    font-weight: 700;
    color: #334155;
}

.night-sign-cart-modal__type-options,
.night-sign-cart-modal__pack-options {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.night-sign-cart-modal__pack-options:has(> :nth-child(3):last-child) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 640px) {
    .night-sign-cart-modal__pack-options:has(> :nth-child(3):last-child) {
        grid-template-columns: 1fr;
    }
}

.night-sign-cart-modal__type-btn,
.night-sign-cart-modal__pack-btn {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #fff;
    color: #1c2d42;
    text-align: left;
    cursor: pointer;
    font: inherit;
}

.night-sign-cart-modal__type-btn:hover,
.night-sign-cart-modal__type-btn:focus-visible,
.night-sign-cart-modal__pack-btn:hover,
.night-sign-cart-modal__pack-btn:focus-visible {
    border-color: #b50400;
    outline: none;
}

.night-sign-cart-modal__type-btn.is-selected,
.night-sign-cart-modal__pack-btn.is-selected {
    border-color: #b50400;
    box-shadow: inset 0 0 0 1px #b50400;
    background: #fff7f6;
}

.night-sign-cart-modal__type-title,
.night-sign-cart-modal__pack-title {
    font-size: 0.95rem;
    font-weight: 700;
}

.night-sign-cart-modal__pack-badge {
    display: inline-block;
    margin-top: 2px;
    padding: 1px 6px;
    border-radius: 999px;
    background: #b50400;
    color: #fff;
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1.4;
}

.night-sign-cart-modal__type-price,
.night-sign-cart-modal__pack-price {
    margin-top: 4px;
    font-size: 1.05rem;
    font-weight: 800;
    color: #b50400;
}

.night-sign-cart-modal__pack-per {
    font-size: 0.78rem;
    color: #475569;
}

.night-sign-cart-modal__pack-save {
    font-size: 0.78rem;
    font-weight: 700;
    color: #b50400;
}

.night-sign-cart-modal__laminate {
    margin: 0 0 16px;
    padding: 12px 14px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
}

.night-sign-cart-modal__laminate legend {
    padding: 0 4px;
    font-size: 0.9rem;
    font-weight: 700;
    color: #334155;
}

.night-sign-cart-modal__laminate-option {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 8px;
    font-size: 0.92rem;
    color: #1c2d42;
    cursor: pointer;
}

.night-sign-cart-modal__laminate-option:first-of-type {
    margin-top: 4px;
}

.night-sign-cart-modal__size-matrix {
    margin: 0 0 16px;
    padding: 12px 12px 10px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
}

.night-sign-cart-modal__size-matrix[hidden] {
    display: none !important;
}

.night-sign-cart-modal__size-matrix-lead {
    margin: 0 0 8px;
    font-size: 0.84rem;
    line-height: 1.5;
    color: #475569;
}

.night-sign-cart-modal__size-matrix-selected {
    margin: 0 0 10px;
    font-size: 0.9rem;
    font-weight: 700;
    color: #1c2d42;
}

.night-sign-cart-modal__size-matrix-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 -2px;
    padding-bottom: 2px;
}

.night-sign-cart-modal__size-table {
    width: 100%;
    min-width: 520px;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 0.72rem;
}

.night-sign-cart-modal__size-table th,
.night-sign-cart-modal__size-table td {
    border: 1px solid #e2e8f0;
    padding: 4px;
    text-align: center;
    vertical-align: middle;
}

.night-sign-cart-modal__size-table thead th {
    background: #f8fafc;
    color: #334155;
    font-weight: 700;
    line-height: 1.25;
}

.night-sign-cart-modal__size-table tbody th {
    background: #f8fafc;
    color: #334155;
    font-weight: 700;
    line-height: 1.25;
    width: 6.4rem;
    padding-left: 4px;
    padding-right: 4px;
}

.night-sign-cart-modal__size-axis-main,
.goods-size-matrix__axis-main {
    display: block;
}

.night-sign-cart-modal__size-axis-height,
.goods-size-matrix__axis-height {
    display: block;
    margin-top: 2px;
    font-size: 0.62rem;
    font-weight: 600;
    color: #475569;
    line-height: 1.2;
    white-space: normal;
}

.night-sign-cart-modal__size-axis-sub,
.goods-size-matrix__axis-sub {
    display: block;
    margin-top: 2px;
    font-size: 0.65rem;
    font-weight: 500;
    color: #64748b;
}

.goods-size-matrix {
    margin: 0 0 24px;
    padding: 16px 14px 14px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #fff;
}

.goods-size-matrix__title {
    margin: 0 0 8px;
}

.goods-size-matrix__lead {
    margin: 0 0 14px;
    font-size: 0.92rem;
    line-height: 1.6;
    color: #475569;
}

.goods-size-matrix__scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.goods-size-matrix__table {
    width: 100%;
    min-width: 720px;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 0.72rem;
}

.goods-size-matrix__table th,
.goods-size-matrix__table td {
    border: 1px solid #e2e8f0;
    padding: 6px 3px;
    text-align: center;
    vertical-align: middle;
}

.goods-size-matrix__table thead th,
.goods-size-matrix__table tbody th {
    background: #f8fafc;
    color: #334155;
    font-weight: 700;
    line-height: 1.3;
}

.goods-size-matrix__table tbody th {
    width: 7rem;
    padding-left: 6px;
    padding-right: 6px;
}

.goods-size-matrix__order {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    width: 100%;
    min-height: 64px;
    margin: 0;
    padding: 4px 2px;
    border: 1px solid transparent;
    border-radius: 6px;
    background: #fff;
    color: #1c2d42;
    cursor: pointer;
    font: inherit;
    line-height: 1.2;
}

.goods-size-matrix__order:hover,
.goods-size-matrix__order:focus-visible {
    border-color: #b50400;
    background: #fff1f0;
    outline: none;
}

/* 縦長：縦＝長さ、横＝幅（太さ）。実寸比に近い帯状の四角 */
.tasuki-size-shape {
    --tw: 16;
    --tl: 80;
    --tasuki-scale: 0.42;
    display: block;
    width: calc(var(--tw) * 1px * var(--tasuki-scale));
    height: calc(var(--tl) * 1px * var(--tasuki-scale));
    max-height: 42px;
    margin: 0 auto;
    box-sizing: border-box;
    border: 1.5px solid #b50400;
    border-radius: 1px;
    background: rgba(181, 4, 0, 0.08);
}

.goods-size-matrix__order .tasuki-size-shape {
    --tasuki-scale: 0.4;
    max-height: 40px;
}

.night-sign-cart-modal__size-cell .tasuki-size-shape {
    --tasuki-scale: 0.36;
    max-height: 36px;
}

.goods-size-matrix__price {
    display: block;
    color: #b50400;
    font-size: 0.7rem;
    font-weight: 700;
}

.goods-size-matrix__order-label {
    display: block;
    color: #334155;
    font-size: 0.66rem;
    font-weight: 700;
}

.goods-size-matrix__note {
    margin: 12px 0 0;
    font-size: 0.86rem;
    line-height: 1.55;
    color: #64748b;
}

.night-sign-cart-modal__size-cell {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 44px;
    margin: 0;
    padding: 4px 2px;
    border: 0;
    border-radius: 6px;
    background: #fff;
    color: #b50400;
    cursor: pointer;
}

.night-sign-cart-modal__size-cell:hover,
.night-sign-cart-modal__size-cell:focus-visible {
    background: #fff1f0;
    outline: none;
}

.night-sign-cart-modal__size-cell.is-selected,
.night-sign-cart-modal__size-cell[aria-pressed="true"] {
    background: #b50400;
}

.night-sign-cart-modal__size-cell.is-selected .tasuki-size-shape,
.night-sign-cart-modal__size-cell[aria-pressed="true"] .tasuki-size-shape {
    border-color: #fff;
    background: rgba(255, 255, 255, 0.2);
}

.night-sign-cart-modal__design {
    margin: 0 0 16px;
}

.night-sign-cart-modal__design .night-sign-estimate__design-label {
    margin: 0 0 8px;
    font-size: 0.9rem;
    font-weight: 700;
    color: #334155;
}

.night-sign-cart-modal__shipping {
    display: grid;
    gap: 6px;
    margin: 0 0 14px;
}

.night-sign-cart-modal__shipping[hidden] {
    display: none !important;
}

.night-sign-cart-modal__shipping label {
    font-size: 0.9rem;
    font-weight: 700;
    color: #334155;
}

.night-sign-cart-modal__shipping select {
    width: 100%;
    min-height: 42px;
    padding: 8px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #fff;
    color: #1c2d42;
    font: inherit;
}

.night-sign-cart-modal__estimate {
    margin: 0 0 14px;
    padding: 12px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #f8fafc;
}

.night-sign-cart-modal__estimate[hidden] {
    display: none !important;
}

.night-sign-cart-modal__estimate-row,
.night-sign-cart-modal__estimate-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 6px;
    font-size: 0.9rem;
    color: #334155;
}

.night-sign-cart-modal__estimate-total {
    margin: 8px 0 0;
    padding-top: 8px;
    border-top: 1px solid #e2e8f0;
    font-weight: 700;
}

.night-sign-cart-modal__estimate-total strong {
    color: #b50400;
    font-size: 1.05rem;
}

.night-sign-cart-modal__estimate-note {
    margin: 8px 0 0;
    font-size: 0.78rem;
    color: #b50400;
}

.night-sign-cart-modal__estimate-breakdown {
    margin: 0 0 8px;
    padding: 6px 10px;
    border-radius: 6px;
    background: #f8fafc;
    font-size: 0.8rem;
    color: #475569;
    line-height: 1.5;
}

.night-sign-cart-modal__qty-hint {
    flex-basis: 100%;
    margin: 8px 0 0;
    font-size: 0.76rem;
    color: #64748b;
    line-height: 1.5;
}

.night-sign-cart-modal__mail {
    margin: 0 0 14px;
    padding: 12px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #fff;
}

.night-sign-cart-modal__mail[hidden] {
    display: none !important;
}

.night-sign-cart-modal__mail legend {
    padding: 0 4px;
    font-size: 0.9rem;
    font-weight: 700;
    color: #334155;
}

.night-sign-cart-modal__mail-lead {
    margin: 0 0 10px;
    font-size: 0.78rem;
    color: #64748b;
}

.night-sign-cart-modal__mail-fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.night-sign-cart-modal__mail-field {
    display: grid;
    gap: 4px;
}

.night-sign-cart-modal__mail-field--full {
    grid-column: 1 / -1;
}

.night-sign-cart-modal__mail-field label {
    font-size: 0.78rem;
    font-weight: 600;
    color: #475569;
}

.night-sign-cart-modal__mail-field input {
    width: 100%;
    margin: 0;
    padding: 8px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    font: inherit;
}

@media (max-width: 520px) {
    .night-sign-cart-modal__mail-fields {
        grid-template-columns: 1fr;
    }
}

.night-sign-cart-modal__qty {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
}

.night-sign-cart-modal__qty label {
    font-size: 0.9rem;
    font-weight: 700;
    color: #334155;
}

.night-sign-cart-modal__stepper {
    display: inline-flex;
    align-items: stretch;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    overflow: hidden;
}

.night-sign-cart-modal__stepper button {
    width: 40px;
    border: 0;
    background: #f1f5f9;
    color: #334155;
    font-size: 1.1rem;
    font-weight: 700;
    cursor: pointer;
}

.night-sign-cart-modal__stepper input {
    width: 56px;
    border: 0;
    border-left: 1px solid #e2e8f0;
    border-right: 1px solid #e2e8f0;
    text-align: center;
    font-weight: 700;
}

.night-sign-cart-modal__status {
    margin: 0 0 14px;
    font-size: 0.9rem;
}

.night-sign-cart-modal__status.is-ok {
    color: #166534;
}

.night-sign-cart-modal__status.is-error {
    color: #b50400;
}

.night-sign-cart-modal__actions {
    display: grid;
    gap: 10px;
}

.night-sign-cart-modal[data-hide-laminate="1"] .night-sign-cart-modal__laminate:not([data-night-sign-cart-width-wrap]) {
    display: none !important;
}

.night-sign-cart-modal__width {
    margin: 0 0 14px;
    padding: 0;
    border: 0;
}

.night-sign-cart-modal__width legend {
    margin: 0 0 8px;
    font-size: 0.92rem;
    font-weight: 700;
}

.night-sign-cart-modal__actions .btn {
    appearance: none;
    -webkit-appearance: none;
    font: inherit;
    cursor: pointer;
    text-align: center;
}


.night-sign-contact-modal {
    width: min(560px, calc(100vw - 24px));
    max-height: calc(100vh - 32px);
    margin: auto;
    padding: 0;
    border: 0;
    border-radius: 12px;
    background: transparent;
    overflow: hidden;
}

.night-sign-contact-modal::backdrop {
    background: rgba(20, 28, 40, 0.55);
}

.night-sign-contact-modal__inner {
    position: relative;
    max-height: calc(100vh - 32px);
    padding: 28px 24px 24px;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 18px 48px rgba(16, 24, 40, 0.22);
    overflow: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

.night-sign-contact-modal__close {
    position: sticky;
    top: 0;
    float: right;
    z-index: 2;
    width: 36px;
    height: 36px;
    margin: -8px -8px 0 0;
    border: 0;
    border-radius: 999px;
    background: #f3f5f8;
    color: #334155;
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
}

.night-sign-contact-modal__title {
    margin: 0 40px 8px 0;
    font-size: 1.2rem;
    font-weight: 700;
    color: #1c2d42;
}

.night-sign-contact-modal__lead {
    margin: 0 0 18px;
    font-size: 0.9rem;
    line-height: 1.6;
    color: #5a6b7d;
}

.night-sign-contact-modal__lead a {
    color: #b50400;
    font-weight: 700;
    text-decoration: none;
}

.night-sign-contact-form {
    display: grid;
    gap: 14px;
}

.night-sign-contact-form .contact-field {
    margin: 0;
}

.night-sign-contact-form label {
    display: block;
    margin-bottom: 6px;
    font-size: 0.88rem;
    font-weight: 700;
    color: #334155;
}

.night-sign-contact-form .required {
    margin-left: 4px;
    color: #b50400;
    font-size: 0.78rem;
    font-weight: 700;
}

.night-sign-contact-form input,
.night-sign-contact-form textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    font-size: 1rem;
    color: #1c2d42;
    background: #fff;
}

.night-sign-contact-form textarea {
    min-height: 140px;
    resize: vertical;
    line-height: 1.55;
}

.night-sign-contact-modal__status {
    margin: 0;
    font-size: 0.9rem;
}

.night-sign-contact-modal__status.is-ok {
    color: #166534;
}

.night-sign-contact-modal__status.is-error {
    color: #b50400;
}

.night-sign-contact-modal__success {
    margin: 0 0 12px;
    padding: 14px 16px;
    border-radius: 8px;
    background: #ecfdf3;
    color: #166534;
    font-size: 0.95rem;
    line-height: 1.55;
}

.night-sign-contact-modal__actions {
    display: grid;
    gap: 10px;
    margin-top: 4px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods, .page-nobori, .page-posters) .product-hero-offer__ctas .btn,
.night-sign-cta .btn {
    appearance: none;
    -webkit-appearance: none;
    font: inherit;
    cursor: pointer;
    text-align: center;
}

@media (max-width: 719px) {
    :is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-price-table-wrap {
        display: none;
    }

    :is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-price-scroll-hint {
        display: none;
    }

    .night-sign-price-cards {
        display: grid;
    }

    :is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-type-guide__list li {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    :is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-type-guide__arrow {
        display: none;
    }
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-shipping {
    margin-top: 18px;
    padding: 14px 16px;
    background: #f7f8fa;
    border-radius: 8px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-shipping__title {
    margin: 0 0 10px;
    font-size: 0.95rem;
    font-weight: 700;
    color: #1c2d42;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-shipping__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 6px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-shipping__list li {
    font-size: 0.9rem;
    color: #333;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-shipping__note {
    margin: 10px 0 0;
    font-size: 0.84rem;
    color: #666;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-schedule {
    margin: 0 0 32px;
    scroll-margin-top: 88px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-schedules {
    display: grid;
    gap: 28px;
    margin: 0 0 32px;
}

.page-car-kit .car-kit-stock-matrix {
    margin: 0 0 18px;
    padding: 14px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #f8fafc;
}

.page-car-kit .car-kit-stock-matrix__title {
    margin: 0 0 8px;
    font-size: 0.98rem;
    font-weight: 700;
    color: #1c2d42;
}

.page-car-kit .car-kit-stock-matrix__note {
    margin: 0 0 12px;
    font-size: 0.86rem;
    line-height: 1.6;
    color: #5a6b7d;
}

.page-car-kit .car-kit-stock-matrix__wrap {
    margin: 0;
}

.page-car-kit .car-kit-stock-matrix__table th,
.page-car-kit .car-kit-stock-matrix__table td {
    text-align: center;
    vertical-align: middle;
}

.page-car-kit .car-kit-stock-matrix__cell {
    padding: 8px;
}

.page-car-kit .car-kit-stock-matrix__na {
    color: #94a3b8;
}

.page-car-kit .car-kit-stock-matrix__btn {
    appearance: none;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    min-width: 72px;
    padding: 8px 10px;
    border: 0;
    border-radius: 8px;
    cursor: pointer;
    font: inherit;
    line-height: 1.2;
}

.page-car-kit .car-kit-stock-matrix__cell.is-ok .car-kit-stock-matrix__btn {
    background: #d4edda;
    color: #155724;
}

.page-car-kit .car-kit-stock-matrix__cell.is-ng .car-kit-stock-matrix__btn {
    background: #fff3cd;
    color: #856404;
}

.page-car-kit .car-kit-stock-matrix__btn:hover,
.page-car-kit .car-kit-stock-matrix__btn:focus-visible {
    outline: 2px solid #8f0300;
    outline-offset: 2px;
}

.page-car-kit .car-kit-stock-matrix__label {
    font-size: 0.72rem;
    font-weight: 600;
}

.page-car-kit .car-kit-stock-matrix__num {
    font-size: 1.15rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.page-car-kit .car-kit-stock-matrix__unit {
    font-size: 0.72rem;
}

.page-car-kit .car-kit-stock-matrix__group-title,
.page-car-kit .car-kit-matrix-group-title {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 12px;
    font-size: clamp(1.15rem, 2.4vw, 1.4rem);
    font-weight: 800;
    line-height: 1.3;
    color: #1c2d42;
}

.page-car-kit .car-kit-series-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 7px;
    font-size: 1rem;
    font-weight: 800;
    color: #fff;
    background: #1c2d42;
    flex: 0 0 auto;
}

.page-car-kit .car-kit-series-label {
    letter-spacing: 0.02em;
}

.page-car-kit .car-kit-size-glossary__symbol {
    width: 36px;
    height: 36px;
    font-size: 1.05rem;
    border-radius: 7px;
}

.page-car-kit .car-kit-h50-matrix {
    margin-top: 16px;
}

.page-car-kit .car-kit-h50-matrix .car-kit-stock-matrix__note,
.page-car-kit .car-kit-h50-matrix .night-sign-price-unit-note,
.page-car-kit .car-kit-h50-matrix .car-kit-price-table__footnote {
    margin-bottom: 8px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate {
    margin: 0 0 28px;
    scroll-margin-top: 88px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate-teaser {
    display: grid;
    gap: 14px;
    margin: 0 0 28px;
    padding: 18px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #fff;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate-teaser__text {
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.7;
    color: #334155;
}

/* モーダル表示中：背面ページのスクロールを止める（position:fixed は使わない＝backdropで背景が透ける） */
html.is-modal-scroll-locked,
html.is-modal-scroll-locked body {
    overflow: hidden;
    overscroll-behavior: none;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate-modal {
    width: min(560px, calc(100vw - 32px));
    max-height: calc(100vh - 32px);
    padding: 0;
    border: 0;
    border-radius: 12px;
    background: transparent;
    overflow: visible;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate-modal[open],
:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate-modal.is-open {
    display: block;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate-modal::backdrop {
    background: rgba(20, 28, 40, 0.55);
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate-modal__inner {
    position: relative;
    max-height: calc(100vh - 32px);
    overflow: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: 28px 24px 24px;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 18px 48px rgba(16, 24, 40, 0.22);
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate-modal__close {
    position: absolute;
    top: 10px;
    right: 12px;
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 999px;
    background: #f3f5f8;
    color: #334155;
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate-modal__title {
    margin: 0 36px 8px 0;
    font-size: 1.15rem;
    font-weight: 700;
    color: #1c2d42;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate-modal__lead {
    margin: 0 0 16px;
    font-size: 0.9rem;
    line-height: 1.6;
    color: #5a6b7d;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__form {
    display: grid;
    gap: 18px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__fields {
    display: grid;
    gap: 12px;
}

@media (min-width: 720px) {
    :is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__fields {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__field {
    display: grid;
    gap: 6px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__field label {
    font-size: 0.9rem;
    font-weight: 700;
    color: #1c2d42;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__field select,
:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__field input[type="number"],
:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__field input[type="email"],
:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__field input[type="text"] {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    font-size: 1rem;
    color: #1c2d42;
    background: #fff;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__summary {
    margin: 0;
    display: grid;
    gap: 8px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__summary > div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 0;
    border-bottom: 1px solid #edf2f7;
    font-size: 0.95rem;
    color: #334155;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__summary dt {
    margin: 0;
    font-weight: 600;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__summary dd {
    margin: 0;
    font-variant-numeric: tabular-nums;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__total {
    border-bottom: 0 !important;
    margin-top: 4px;
    padding-top: 12px !important;
    color: #1c2d42;
    font-size: 1.05rem;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__total dd {
    color: #b50400;
    font-weight: 800;
    font-size: 1.2rem;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__band,
:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__note {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.6;
    color: #64748b;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__mail {
    margin: 0;
    padding: 14px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #f8fafc;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__mail legend {
    padding: 0 4px;
    font-size: 0.95rem;
    font-weight: 700;
    color: #1c2d42;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__mail-lead {
    margin: 0 0 12px;
    font-size: 0.86rem;
    line-height: 1.6;
    color: #64748b;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__field--full {
    grid-column: 1 / -1;
}

.page-car-kit .car-kit-estimate__hole {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.55;
    color: #243447;
    cursor: pointer;
}

.page-car-kit .car-kit-estimate__hole input {
    margin-top: 3px;
    flex-shrink: 0;
}

.page-car-kit .car-kit-estimate__sound {
    margin: 0;
    padding: 0;
    border: 0;
}

.page-car-kit .car-kit-estimate__sound legend {
    padding: 0;
    font-size: 0.9rem;
    font-weight: 700;
    color: #243447;
}

.page-car-kit .car-kit-estimate__sound-lead {
    margin: 6px 0 10px;
    font-size: 0.82rem;
    line-height: 1.5;
    color: #64748b;
}

.page-car-kit .car-kit-estimate__sound-option {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0 0 8px;
    font-size: 0.9rem;
    line-height: 1.5;
    color: #243447;
    cursor: pointer;
}

.page-car-kit .car-kit-estimate__sound-option input {
    margin-top: 3px;
    flex-shrink: 0;
}

.page-car-kit .car-kit-estimate__sound-option small {
    display: block;
    margin-top: 2px;
    font-size: 0.8rem;
    color: #64748b;
}

.car-kit-addons {
    margin-top: 24px;
}

.car-kit-addons__card {
    padding: 20px 22px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #fff8f3;
}

.car-kit-addons__title {
    margin: 0 0 6px;
    font-size: 1.05rem;
    font-weight: 700;
    color: #b50400;
}

.car-kit-addons__price {
    margin: 0 0 10px;
    font-size: 1.15rem;
    font-weight: 800;
    color: #b50400;
}

.car-kit-addons__desc,
.car-kit-addons__note {
    margin: 0 0 8px;
    font-size: 0.9rem;
    line-height: 1.6;
    color: #334155;
}

.car-kit-addons__note {
    color: #64748b;
}

.car-kit-sound__meta {
    margin-top: 14px;
    text-align: center;
}

.car-kit-sound__price {
    margin: 0 0 6px;
    font-size: 1.15rem;
    font-weight: 800;
    color: #b50400;
}

.car-kit-sound__includes,
.car-kit-sound__note {
    margin: 0 0 6px;
    font-size: 0.88rem;
    line-height: 1.55;
    color: #334155;
}

.car-kit-sound__note {
    color: #64748b;
}

.car-kit-sound__meta .btn {
    margin-top: 8px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__field .required {
    color: #b50400;
    font-size: 0.8em;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__lookup,
:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__mail-status {
    margin: 6px 0 0;
    font-size: 0.85rem;
    line-height: 1.5;
    color: #64748b;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__lookup.is-ok,
:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__mail-status.is-ok {
    color: #0f766e;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__lookup.is-error,
:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__mail-status.is-error {
    color: #b50400;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-posters) .night-sign-estimate__mail .btn {
    margin-top: 12px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-schedule__grid {
    display: grid;
    gap: 24px;
}

@media (min-width: 900px) {
    :is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-schedule__grid {
        grid-template-columns: 1.1fr 0.9fr;
        align-items: start;
    }
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-schedule__cutoff,
:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-schedule__example {
    margin: 0 0 12px;
    font-size: 0.95rem;
    line-height: 1.65;
    color: #334155;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-schedule__example {
    padding: 12px 14px;
    background: #f7f8fa;
    border-radius: 6px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-schedule__calc {
    display: grid;
    gap: 14px;
    margin: 16px 0 18px;
    padding: 16px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #fff;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-schedule__field {
    display: grid;
    gap: 6px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-schedule__field label,
:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-schedule__cutoff-choice legend {
    font-size: 0.9rem;
    font-weight: 700;
    color: #1c2d42;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-schedule__field input[type="date"] {
    max-width: 220px;
    padding: 8px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    font-size: 0.95rem;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-schedule__cutoff-choice {
    margin: 0;
    padding: 0;
    border: 0;
    display: grid;
    gap: 8px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-schedule__cutoff-choice label {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 0.9rem;
    color: #334155;
    cursor: pointer;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-schedule__result {
    margin: 0 0 16px;
    padding: 14px 16px;
    background: #fff7f6;
    border-left: 3px solid #b50400;
    font-size: 1rem;
    line-height: 1.6;
    color: #1c2d42;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-schedule__result strong {
    font-size: 1.1rem;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-schedule__result-note {
    display: block;
    margin-top: 4px;
    font-size: 0.85rem;
    color: #64748b;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-schedule__notes {
    margin: 0;
    padding-left: 1.2em;
    font-size: 0.88rem;
    line-height: 1.7;
    color: #555;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-schedule__calendar {
    margin: 0;
    overflow: hidden;
    border-radius: 8px;
    background: #f7f8fa;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-schedule__calendar img {
    display: block;
    width: 100%;
    height: auto;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker {
    margin: 0 0 20px;
    scroll-margin-top: 88px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-estimate__design {
    margin: 16px 0 0;
    padding: 14px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #f8fafc;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-estimate__design-label {
    margin: 0 0 8px;
    font-size: 0.85rem;
    font-weight: 700;
    color: #334155;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-estimate__design .night-sign-design-panel__card {
    margin: 0;
    padding: 10px 12px;
    border: 0;
    background: transparent;
    box-shadow: none;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-estimate__design .night-sign-design-panel__text {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.55;
    color: #475569;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-estimate__design .night-sign-design-picker__summary {
    margin-top: 10px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-gallery {
    margin: 0 0 20px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-gallery .night-sign-design-picker__actions {
    margin: 0 0 14px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-mode {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    margin: 0 0 14px;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    overflow: hidden;
    background: #f1f5f9;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-mode__btn {
    margin: 0;
    padding: 12px 10px;
    border: 0;
    background: transparent;
    color: #475569;
    font-size: 0.95rem;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-mode__btn + .night-sign-design-mode__btn {
    border-left: 1px solid #cbd5e1;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-mode__btn.is-active {
    background: #b50400;
    color: #fff;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-mode__btn:focus-visible {
    outline: 2px solid #b50400;
    outline-offset: -2px;
    z-index: 1;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-design-panel__card {
    margin: 0 0 12px;
    padding: 14px 16px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #fff;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-design-panel__title {
    margin: 0 0 6px;
    font-size: 1rem;
    font-weight: 800;
    color: #1c2d42;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-design-panel__text {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.65;
    color: #475569;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-design-panel__list {
    margin: 10px 0 0;
    padding-left: 1.2em;
    font-size: 0.88rem;
    line-height: 1.65;
    color: #64748b;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__lead {
    margin: 0 0 12px;
    font-size: 0.92rem;
    line-height: 1.6;
    color: #475569;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__summary {
    display: grid;
    grid-template-columns: 72px 1fr;
    gap: 14px;
    align-items: center;
    padding: 12px 14px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #fafbfc;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__preview {
    position: relative;
    width: 72px;
    aspect-ratio: 400 / 1490;
    border-radius: 6px;
    overflow: hidden;
    background: #eef2f7;
    border: 1px solid #e2e8f0;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__preview-empty {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    font-size: 0.68rem;
    font-weight: 700;
    color: #94a3b8;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__preview img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__preview img[hidden] {
    display: none !important;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__summary-body {
    min-width: 0;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__selected {
    margin: 0 0 10px;
    font-size: 0.9rem;
    line-height: 1.55;
    color: #1c2d42;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__summary--page {
    margin: 0 0 4px;
    grid-template-columns: 88px 1fr;
    border-color: #d7dee8;
    background: #fff;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__summary--page .night-sign-design-picker__preview {
    width: 88px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__preview.is-selected {
    border-color: #b50400;
    box-shadow: 0 0 0 2px rgba(181, 4, 0, 0.18);
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__teaser {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 12px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__teaser img {
    display: block;
    width: 36px;
    height: auto;
    aspect-ratio: 400 / 1490;
    object-fit: cover;
    object-position: center top;
    border-radius: 3px;
    background: #f1f5f9;
    border: 1px solid #e8ecf1;
    opacity: 0.72;
    transition: opacity 0.15s ease, border-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__teaser img.is-selected {
    opacity: 1;
    border-color: #b50400;
    border-width: 2px;
    transform: scale(1.08);
    box-shadow: 0 0 0 2px rgba(181, 4, 0, 0.2);
    z-index: 1;
}

@media (max-width: 560px) {
    :is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__summary {
        grid-template-columns: 56px 1fr;
    }

    :is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__summary--page {
        grid-template-columns: 72px 1fr;
    }

    :is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__preview {
        width: 56px;
    }

    :is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__summary--page .night-sign-design-picker__preview {
        width: 72px;
    }

    :is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__teaser img {
        width: 30px;
    }
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-design-modal {
    width: min(920px, calc(100vw - 24px));
    max-height: calc(100vh - 32px);
    padding: 0;
    border: 0;
    border-radius: 12px;
    background: transparent;
    overflow: hidden;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-design-modal::backdrop {
    background: rgba(20, 28, 40, 0.55);
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-design-modal__inner {
    position: relative;
    max-height: calc(100vh - 32px);
    padding: 24px 20px 18px;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 18px 48px rgba(16, 24, 40, 0.22);
    overflow: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-design-modal__close {
    position: sticky;
    top: 0;
    float: right;
    z-index: 2;
    width: 36px;
    height: 36px;
    margin: -6px -6px 0 0;
    border: 0;
    border-radius: 999px;
    background: #f3f5f8;
    color: #334155;
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-design-modal__title {
    margin: 0 40px 6px 0;
    font-size: 1.15rem;
    font-weight: 700;
    color: #1c2d42;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-design-modal__lead {
    margin: 0 0 16px;
    font-size: 0.9rem;
    line-height: 1.55;
    color: #5a6b7d;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-goods) .night-sign-design-modal__footer {
    display: flex;
    justify-content: flex-end;
    margin-top: 16px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    align-items: stretch;
    clear: both;
}

@media (min-width: 700px) {
    :is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__grid {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__item {
    display: flex;
    flex-direction: column;
    gap: 6px;
    height: 100%;
    margin: 0;
    padding: 8px;
    border: 2px solid #e2e8f0;
    border-radius: 8px;
    background: #fff;
    cursor: pointer;
    text-align: center;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__item:hover,
:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__item:focus-visible {
    border-color: #94a3b8;
    outline: none;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__item.is-selected {
    border-color: #b50400;
    box-shadow: 0 0 0 1px #b50400;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__item img {
    display: block;
    flex: 0 0 auto;
    width: 100%;
    aspect-ratio: 400 / 1490;
    height: auto;
    object-fit: cover;
    object-position: center top;
    border-radius: 4px;
    background: #f1f5f9;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit, .page-magnet-sign, .page-goods, .page-posters) .night-sign-design-picker__item span {
    margin-top: auto;
    font-size: 0.75rem;
    color: #334155;
    word-break: break-all;
}

/* 注文フロー（products共通） */
.product-flow,
.night-sign-flow {
    --product-flow-cols: 6;
    margin: 12px 0 0;
    padding: 18px 14px;
    list-style: none;
    display: grid;
    gap: 12px;
    border: 1px solid #e5e9f0;
    border-radius: 12px;
    background: linear-gradient(180deg, #fbfcfe 0%, #f4f6f9 100%);
}

@media (min-width: 720px) {
    .product-flow,
    .night-sign-flow {
        grid-template-columns: repeat(var(--product-flow-cols), minmax(0, 1fr));
        gap: 0;
        padding: 22px 10px 18px;
        align-items: start;
    }
}

@media (min-width: 720px) and (max-width: 980px) {
    .product-flow,
    .night-sign-flow {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 18px 8px;
        padding: 20px 12px;
    }
}

.product-flow__step,
.night-sign-flow__step {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    margin: 0;
    padding: 4px 8px 0;
    text-align: center;
    color: #1c2d42;
}

@media (min-width: 720px) {
    .product-flow__step:not(:last-child)::after,
    .night-sign-flow__step:not(:last-child)::after {
        content: "";
        position: absolute;
        top: 18px;
        left: calc(50% + 22px);
        width: calc(100% - 44px);
        height: 2px;
        background: linear-gradient(90deg, #b50400 0%, #d6dde8 100%);
        pointer-events: none;
    }
}

@media (min-width: 720px) and (max-width: 980px) {
    .product-flow__step:nth-child(3n)::after,
    .night-sign-flow__step:nth-child(3n)::after {
        display: none;
    }
}

@media (max-width: 719px) {
    .product-flow__step,
    .night-sign-flow__step {
        flex-direction: row;
        justify-content: flex-start;
        text-align: left;
        gap: 12px;
        padding: 10px 12px;
        border-radius: 8px;
        background: #fff;
        border: 1px solid #e8ecf1;
    }

    .product-flow__step:not(:last-child)::after,
    .night-sign-flow__step:not(:last-child)::after {
        content: "";
        position: absolute;
        left: 29px;
        top: calc(100% - 1px);
        width: 2px;
        height: 12px;
        background: #d6dde8;
    }
}

.product-flow__num,
.night-sign-flow__num {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 999px;
    background: #b50400;
    color: #fff;
    font-size: 0.95rem;
    font-weight: 800;
    line-height: 1;
    box-shadow: 0 0 0 4px #fff;
    flex: 0 0 auto;
}

.product-flow__label,
.night-sign-flow__label {
    display: block;
    font-size: 0.88rem;
    font-weight: 700;
    line-height: 1.4;
}

.product-flow__reassure,
.night-sign-flow__reassure {
    margin: 14px 0 0;
    padding: 12px 14px;
    border-left: 4px solid var(--home-accent, #b50400);
    background: #fff8f7;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.6;
    color: #222;
}

.night-sign-faq {
    display: grid;
    gap: 10px;
}

.night-sign-faq__item {
    padding: 12px 14px;
    border: 1px solid #e5e8ee;
    border-radius: 8px;
    background: #fff;
}

.night-sign-faq__item summary {
    cursor: pointer;
    font-weight: 700;
    color: #1c2d42;
    line-height: 1.5;
}

.night-sign-faq__item p {
    margin: 10px 0 0;
    font-size: 0.92rem;
    line-height: 1.7;
    color: #444;
}

.night-sign-cta {
    display: grid;
    gap: 10px;
    margin-top: 24px;
}

@media (min-width: 560px) {
    .night-sign-cta {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.night-sign-cta__btn {
    text-align: center;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-sublinks {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin-top: 12px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-sublinks a {
    font-size: 0.86rem;
    color: #555;
    text-decoration: underline;
    text-underline-offset: 2px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-legacy__template {
    margin-top: 18px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-howto {
    margin: 8px 0 24px;
    padding: 18px 18px 16px;
    border: 1px solid #e0e0e0;
    border-radius: 10px;
    background: #fafbfc;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-howto .night-sign-legacy-section__subtitle {
    margin-top: 0;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-howto__lead {
    margin: 0 0 12px;
    font-size: 0.95rem;
    line-height: 1.7;
    color: #334155;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-howto__steps {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 10px;
    counter-reset: night-sign-howto;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-howto__steps li {
    position: relative;
    display: grid;
    grid-template-columns: 28px 1fr;
    gap: 10px;
    align-items: start;
    margin: 0;
    padding: 12px 14px;
    border-radius: 8px;
    background: #fff;
    border: 1px solid #e8ecf1;
    font-size: 0.95rem;
    line-height: 1.6;
    color: #1c2d42;
    counter-increment: night-sign-howto;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .night-sign-howto__steps li::before {
    content: counter(night-sign-howto);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 999px;
    background: #b50400;
    color: #fff;
    font-size: 0.85rem;
    font-weight: 700;
    line-height: 1;
}

/* 入稿テンプレート（products共通） */
.product-template-downloads,
.night-sign-template-downloads {
    margin-top: 22px;
    padding: 18px 20px;
    border: 1px solid #e0e0e0;
    border-radius: 10px;
    background: #fafbfc;
}

.product-template-downloads__title {
    margin: 0 0 8px;
    font-size: 1.05rem;
    font-weight: 700;
    color: #333;
    line-height: 1.45;
}

.product-template-downloads__note,
.night-sign-template-downloads__note {
    margin: 0 0 14px;
    font-size: 0.9rem;
    line-height: 1.7;
    color: #555;
}

.product-template-downloads__list,
.night-sign-template-downloads__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    gap: 12px 24px;
}

.product-template-downloads__link,
.night-sign-template-downloads__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.95rem;
    font-weight: 600;
    color: #1a5fb4;
    text-decoration: none;
    background: none;
    border: 0;
    padding: 0;
    margin: 0;
}

.product-template-downloads__link:hover,
.product-template-downloads__link:focus-visible,
.night-sign-template-downloads__btn:hover,
.night-sign-template-downloads__btn:focus-visible {
    color: var(--home-accent, #b50400);
    text-decoration: underline;
    outline: none;
}

.night-sign-legacy-section__notes {
    margin: 16px 0 0;
    padding-left: 1.2em;
    font-size: 0.86rem;
    line-height: 1.75;
    color: #555;
}

.night-sign-legacy-section__actions {
    margin-top: 24px;
}

:is(.page-night-sign, .page-standard-sign, .page-car-kit) .product-features h2 {
    margin: 0 0 14px;
    font-size: clamp(1.25rem, 3vw, 1.5rem);
    font-weight: 700;
    color: #1c2d42;
    padding-bottom: 12px;
    border-bottom: 2px solid #1c2d42;
}

/* --- 選挙タスキ・用品（Item.html レガシー） --- */

.page-goods .signs-legacy-section__banner--goods {
    border-left-color: #19448e;
}

.page-goods .signs-legacy-new-style {
    background: linear-gradient(135deg, #19448e 0%, #2a5f9e 100%);
}

.page-goods .goods-legacy-headline .signs-legacy-promo__title {
    color: #19448e;
}

.page-goods .goods-legacy-headline {
    border-color: #19448e;
    background: #f4f7fb;
}

.page-goods .goods-legacy-price-table {
    margin: 24px 0 32px;
    padding: 20px;
    border: 1px solid #d7e0ec;
    background: #f8fafc;
}

.page-goods .goods-legacy-price-table__title {
    margin: 0 0 8px;
    font-size: 1.25rem;
    color: #19448e;
}

.page-goods .goods-legacy-price-table__note {
    margin: 0 0 12px;
    font-size: 0.85rem;
    color: #666;
}

.page-goods .goods-legacy-price-table__table th,
.page-goods .goods-legacy-price-table__table td {
    text-align: center;
    vertical-align: middle;
}

.page-goods .goods-legacy-price-table__cell {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.page-goods .goods-legacy-price-table__price {
    display: block;
    line-height: 1.4;
}

.page-goods .goods-legacy-price-table__buy {
    min-width: 7.5rem;
    padding: 0.45rem 0.9rem;
    font-size: 0.9rem;
}

.page-goods .signs-legacy-price-items__buy {
    margin: 10px 0 0;
}

.page-goods .signs-legacy-price-items__lead {
    margin: 0 0 4px;
    font-size: 1.15rem;
    font-weight: 700;
    color: #b91c1c;
}

.page-goods .goods-legacy-size-chart {
    margin-top: 24px;
}

.page-goods .goods-legacy-size-chart__header img,
.page-goods .goods-legacy-size-chart__image img {
    display: block;
    width: 100%;
    height: auto;
}

.page-goods .goods-legacy-size-chart__note {
    margin: 12px 0 0;
    font-size: 0.9rem;
    color: #666;
    text-align: center;
}

.page-goods .goods-legacy-compare-grid {
    margin-top: 16px;
}

.page-goods .goods-legacy-compare-grid__row {
    display: grid;
    gap: 16px;
    margin-bottom: 16px;
}

@media (min-width: 640px) {
    .page-goods .goods-legacy-compare-grid__row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.page-goods .goods-legacy-compare-grid__cell {
    margin: 0;
    text-align: center;
}

.page-goods .goods-legacy-compare-grid__cell img {
    display: block;
    width: 100%;
    max-width: 320px;
    height: auto;
    margin: 0 auto;
}

.page-goods .goods-legacy-compare-grid__cell figcaption {
    margin-top: 6px;
    font-size: 0.85rem;
    color: #555;
}

.page-goods .goods-legacy-shipping-note {
    margin: 28px 0 0;
    padding: 12px 16px;
    font-size: 0.9rem;
    color: #444;
    text-align: center;
    border: 1px solid #e2e6ec;
    border-radius: 8px;
    background: #f7f9fb;
}

.page-goods .goods-legacy-manufacturing {
    margin-top: 40px;
    padding-top: 32px;
    border-top: 1px solid #e8e8e8;
    scroll-margin-top: 88px;
}

.page-goods .goods-legacy-manufacturing__title {
    margin: 0 0 20px;
    padding: 10px 20px;
    font-size: 1.05rem;
    font-weight: 700;
    color: #000;
    text-align: center;
    border: 1px solid #00c6d8;
    border-radius: 4px;
}

.page-goods .goods-legacy-manufacturing__specs p {
    margin: 0 0 8px;
    font-size: 0.92rem;
    line-height: 1.8;
    color: #444;
}

.page-goods .goods-legacy-manufacturing__material {
    margin-top: 12px !important;
    color: #666 !important;
}

.page-goods .goods-legacy-manufacturing__gallery {
    margin: 24px 0;
}

.page-goods .goods-legacy-manufacturing__gallery-row {
    display: grid;
    gap: 20px;
    margin-bottom: 20px;
}

@media (min-width: 768px) {
    .page-goods .goods-legacy-manufacturing__gallery-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.page-goods .goods-legacy-manufacturing__figure {
    margin: 0;
}

.page-goods .goods-legacy-manufacturing__figure img {
    display: block;
    width: 100%;
    height: auto;
}

.page-goods .goods-legacy-manufacturing__figure figcaption {
    margin-top: 8px;
    font-size: 0.84rem;
    line-height: 1.7;
    color: #68687c;
}

.page-goods .goods-legacy-manufacturing__care {
    margin-top: 20px;
    padding: 16px;
    font-size: 0.88rem;
    line-height: 1.85;
    color: #68687c;
    background: #fafafa;
    border-radius: 8px;
}

.page-goods .goods-legacy-manufacturing__warning {
    margin-top: 10px !important;
    font-weight: 600;
    color: #c41e3a !important;
}

/* --- 選挙音響（sound.html レガシー） --- */

.page-sound .sound-legacy-new-style {
    background: linear-gradient(135deg, #845d9e 0%, #c73576 100%);
}

.page-sound .sound-legacy-section {
    margin-top: 40px;
    padding-top: 32px;
    border-top: 1px solid #e8e8e8;
    scroll-margin-top: 88px;
}

.page-sound .sound-legacy-section__banner {
    margin-bottom: 20px;
    padding: 14px 18px;
    border-left: 4px solid #c73576;
    background: #fdf4f8;
}

.page-sound .sound-legacy-section__title {
    margin: 0;
    font-size: clamp(0.95rem, 2.2vw, 1.1rem);
    font-weight: 700;
    color: #845d9e;
    line-height: 1.55;
}

.page-sound .sound-legacy-section__title-image,
.page-sound .sound-legacy-section__figure {
    margin: 0 0 16px;
    text-align: center;
}

.page-sound .sound-legacy-section__title-image img,
.page-sound .sound-legacy-section__figure img {
    display: block;
    width: 100%;
    max-width: 810px;
    height: auto;
    margin: 0 auto;
}

.page-sound .sound-legacy-section__note {
    margin: 16px 0 0;
    font-size: 0.92rem;
    font-weight: 600;
    line-height: 1.75;
    text-align: center;
    color: #333;
}

.page-sound .sound-legacy-section__links {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 16px;
    padding: 12px 16px;
    background: #dbebff;
    border-radius: 6px;
}

.page-sound .sound-legacy-section__links a {
    font-size: 0.9rem;
    font-weight: 600;
    color: #1a5fb4;
}

.page-sound .sound-legacy-footer-note {
    margin: 32px 0 0;
    padding: 14px;
    font-size: 0.88rem;
    color: #666;
    text-align: center;
    border-top: 1px solid #e8e8e8;
}

.page-sound .sound-legacy-car-kit-promo {
    margin: 24px 0 0;
    text-align: center;
}

.page-sound .sound-legacy-car-kit-promo__label {
    margin: 0 0 10px;
    font-size: 0.9rem;
    font-weight: 600;
    color: #333;
}

.page-sound .sound-legacy-car-kit-promo img {
    display: block;
    width: 100%;
    max-width: 900px;
    height: auto;
    margin: 0 auto;
}

.page-sound .sound-legacy-section__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin-top: 28px;
}

/* ===== goods / nobori content layout（見出しは product-legacy-section 共通） ===== */
.page-goods .goods-pick-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.page-goods .goods-pick-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 960px) {
    .page-goods .goods-pick-grid--3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .page-goods .goods-pick-grid,
    .page-goods .goods-pick-grid--3 {
        grid-template-columns: 1fr;
    }
}

.page-goods .goods-pick-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 14px;
    border: 1px solid #d7e0ec;
    background: #fff;
}

.page-goods .goods-pick-card--highlight {
    border-color: #b50400;
    box-shadow: inset 0 0 0 1px rgba(181, 4, 0, 0.2);
    background: #fffaf9;
}

.page-goods .goods-pick-card__badge {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 1;
    margin: 0;
    padding: 3px 8px;
    border-radius: 4px;
    background: #b50400;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.page-goods .goods-pick-card__media {
    margin: 0 0 6px;
}

.page-goods .goods-pick-card__media img {
    display: block;
    width: 100%;
    height: auto;
}

.page-goods .goods-pick-card__name {
    margin: 0;
    font-size: 1.1rem;
    color: #1a1a1a;
}

.page-goods .goods-pick-card__feature {
    margin: 0;
    color: #444;
}

.page-goods .goods-pick-card__recommend {
    margin: 0;
    font-size: 0.92rem;
    color: #555;
    line-height: 1.6;
}

.page-goods .goods-pick-card__recommend span {
    display: block;
    margin-bottom: 2px;
    font-size: 0.78rem;
    font-weight: 700;
    color: #19448e;
}

.page-goods .goods-pick-card__price {
    margin: 4px 0 8px;
    font-size: 1.15rem;
    font-weight: 700;
    color: #b91c1c;
}

.page-goods .goods-pick-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: auto;
}

.page-goods .goods-compare-table th,
.page-goods .goods-compare-table td {
    text-align: center;
    vertical-align: middle;
}

.page-goods .goods-product-layout {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 22px;
    align-items: start;
}

@media (max-width: 860px) {
    .page-goods .goods-product-layout {
        grid-template-columns: 1fr;
    }
}

.page-goods .goods-product-layout__media {
    margin: 0;
}

.page-goods .goods-product-layout__media img {
    display: block;
    width: 100%;
    height: auto;
}

.page-goods .goods-product-points {
    margin: 0 0 14px;
    padding-left: 1.2em;
    line-height: 1.7;
}

.page-goods .goods-product-recommend,
.page-goods .goods-product-shipping {
    margin: 0 0 12px;
    color: #444;
    line-height: 1.6;
}

.page-goods .goods-product-prices {
    margin: 0 0 14px;
    padding: 0;
    list-style: none;
    font-size: 1.05rem;
    font-weight: 700;
    color: #b91c1c;
}

.page-goods .goods-product-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

/* 価格パネル：購入ボタン付き行は立て看板カード＋3カラム */
.page-goods .goods-price-panel__list li {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 10px;
    align-items: center;
}

.page-goods .goods-price-panel__buy {
    padding: 0.35rem 0.75rem;
    font-size: 0.85rem;
}

.page-goods .goods-price-panel__note {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.75rem;
    font-weight: 500;
    color: #b42318;
    line-height: 1.35;
}

.page-nobori .night-sign-cart-modal__design-fee-note {
    margin: 0.5rem 0 0;
    font-size: 0.85rem;
    color: #b42318;
    line-height: 1.45;
}

.page-goods .goods-price-examples {
    margin-top: 18px;
}

.page-goods .goods-price-examples ul {
    margin: 0;
    padding-left: 1.2em;
    line-height: 1.7;
}

@media (min-width: 640px) {
    .goods-quality-gallery .night-sign-legacy-section__gallery-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 639px) {
    .goods-quality-gallery .night-sign-legacy-section__gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.page-goods .night-sign-cta.goods-final-actions {
    display: flex;
    flex-wrap: wrap;
}

.page-goods .goods-screen--final {
    padding: 28px 20px;
    background: #f4f7fb;
    border: 1px solid #e5e8ee;
    border-radius: 10px;
}

.page-goods .goods-related-reflect {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: 22px;
    align-items: center;
}

.page-goods .goods-related-reflect__media {
    margin: 0;
}

.page-goods .goods-related-reflect__media img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 6px;
    background: #111;
}

.page-goods .goods-related-reflect__body .night-sign-feature-points {
    margin-top: 0;
}

.page-goods .goods-related-reflect__body .night-sign-cta {
    margin-top: 16px;
}

@media (max-width: 860px) {
    .page-goods .goods-related-reflect {
        grid-template-columns: 1fr;
    }
}

/* マグネット式看板：見積モーダルのサイズ行 */
.page-magnet-sign .magnet-sign-estimate__lines {
    display: grid;
    gap: 12px;
    margin: 12px 0 8px;
}

.page-magnet-sign .magnet-sign-estimate__line {
    padding: 12px;
    border: 1px solid #d7e6f7;
    border-radius: 8px;
    background: #f7fbff;
}

.page-magnet-sign .magnet-sign-estimate__line-label {
    margin: 0 0 8px;
    font-size: 0.85rem;
    font-weight: 700;
    color: #1a4f8a;
}

.page-magnet-sign .magnet-sign-estimate__line-actions {
    margin: 0 0 16px;
}
