/* Global Styles */
:root {
    --primary-green: #6c9a33;
    /* Nature green */
    --dark-green: #4a6d22;
    --light-bg: #f9fdf9;
    --border-color: #ddd;
    --text-color: #333;
    --accent-orange: #f59e0b;
    /* For sidebar icons */
}

* {
    box-sizing: border-box;
}

body {
    font-family: 'Noto Sans JP', sans-serif;
    margin: 0;
    padding: 0;
    background-color: #f9ffff;
    /* Outer background gray */
    color: var(--text-color);
}

a {
    text-decoration: none;
    color: inherit;
}

/* Header */
header {
    background: #fff;
    border-bottom: 1px solid var(--border-color);
    margin: 0;
    width: 100%;
    padding: 10px 20px;
}

.header-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* Hero */
/* Hero Slider */
.hero-slider {
    width: 100%;
    height: 500px;
    /* Adjust height */
    position: relative;
    overflow: hidden;
    background: #fff;
    margin-bottom: 20px;
    border-bottom: 5px solid var(--primary-green);
}

.slide-item {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0;
    transform: scale(1.1);
    animation: slideFade 15s infinite linear;
}

/* 3 Slides with delays */
.slide-item:nth-child(1) {
    animation-delay: 0s;
    background-image: url('assets/hero_slide_1.png');
}

.slide-item:nth-child(2) {
    animation-delay: 5s;
    background-image: url('assets/hero_slide_2.png');
}

.slide-item:nth-child(3) {
    animation-delay: 10s;
    background-image: url('assets/hero_slide_3.png');
}

@keyframes slideFade {
    0% {
        opacity: 0;
        transform: scale(1.15) translate(0, 0);
    }

    5% {
        opacity: 1;
    }

    33% {
        opacity: 1;
    }

    38% {
        opacity: 0;
    }

    100% {
        opacity: 0;
        transform: scale(1.15) translate(-3%, -3%);
        /* Diagonal movement */
    }
}

/* Overlay Text (Image 4 content) */
.hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.3);
    /* Slight overlay to improve text readability */
}

.hero-overlay-content {
    background: rgba(255, 255, 255, 0.85);
    padding: 30px 50px;
    border-radius: 4px;
    text-align: center;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
    border: 1px solid #ddd;
}

.hero-overlay-content h2 {
    font-size: 2.2rem;
    color: #000;
    margin: 0 0 10px 0;
    font-weight: bold;
    line-height: 1.4;
}

.hero-overlay-content .main-title-part2 {
    display: block;
    margin-bottom: 20px;
}

.hero-overlay-content p {
    font-size: 1.2rem;
    color: #333;
    margin: 5px 0;
    font-weight: bold;
}

/* Custom Green Hero Style (replicating image) */
.hero-green-custom {
    background: linear-gradient(135deg, #e0f2f1 0%, #b2dfdb 100%);
    
    /*display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 50px;
    position: relative;
    overflow: hidden;
    height: 350px;
     Adjust height as needed 
    border-bottom: 4px solid #fff;
    /* White separator */
}


.hero-green-text {
    z-index: 2;
    color: #000080;
    /* Navy Blue text like image */
    text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.5);
    font-weight: bold;
    text-align: left;
}

.hero-green-text h2 {
    font-size: 2.5rem;
    margin: 0;
    line-height: 1.2;
    color: #000080;
}

.hero-green-text .sub-text {
    font-size: 1.2rem;
    color: #000080;
    margin-top: 10px;
}

.hero-green-image-container {
    height: 100%;
    display: flex;
    align-items: center;
    z-index: 2;
}

.hero-green-image-container img {
    max-height: 90%;
    width: auto;
    object-fit: contain;
    transform: rotate(-5deg);
    /* Slight tilt for dynamic look */
    filter: drop-shadow(5px 5px 15px rgba(0, 0, 0, 0.2));
}

.hero-green-bg-decor {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0.1;
    background-image: radial-gradient(#009e52 10%, transparent 10%);
    background-size: 30px 30px;
    /* Dots pattern */
    z-index: 1;
}

/* Main Content Top Banner (Green Custom) */
.content-top-banner {
    background: linear-gradient(135deg, #e0f2f1 0%, #b2dfdb 100%);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 30px;
    position: relative;
    overflow: hidden;
    height: 250px;
    /* Reduced height for content banner */
    margin-bottom: 20px;
    border-radius: 4px;
}

.content-top-banner .hero-green-text h2 {
    font-size: 2rem;
    /* Slightly smaller than hero */
}

.content-top-banner .hero-green-bg-decor {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0.1;
    background-image: radial-gradient(#009e52 10%, transparent 10%);
    background-size: 30px 30px;
    z-index: 1;
}

.banner-stack-img {
    max-height: 90%;
    width: auto;
    object-fit: contain;
    transform: rotate(-5deg);
    filter: drop-shadow(5px 5px 15px rgba(0, 0, 0, 0.2));
}

/* News Section - Modernized */
.info-news-section {
    margin: 40px 0;
    border: none;
    border-radius: 8px;
    padding: 30px;
    background: #fff;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.05);
}

.info-news-header {
    font-size: 1.2rem;
    color: #333;
    border-bottom: 2px solid var(--primary-green);
    padding-bottom: 10px;
    margin-bottom: 15px;
    font-weight: bold;
}

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

.news-list li {
    border-bottom: 1px dashed #eee;
    padding: 10px 0;
    display: flex;
    align-items: baseline;
}

.news-list li:last-child {
    border-bottom: none;
}

.news-date {
    font-weight: bold;
    color: var(--dark-green);
    margin-right: 15px;
    min-width: 100px;
}

.news-content {
    flex: 1;
}

/* Navigation Menu - Modernized */
.main-menu {
  width: 100%;
  margin: 0 0 20px;
  background: #B0E0E6;                 /* 重厚ダーク */
  border-bottom: 2px solid #111;
  box-shadow: 0 3px 6px rgba(0,0,0,0.25);
  position: sticky;
  top: 0;
  z-index: 1000;
}


.main-menu ul {
    list-style: none;
    margin: 0 auto;
    padding: 0;
    display: flex;
    justify-content: center;
    max-width: 1200px;
}

.main-menu li {
    flex: 1;
    text-align: center;
    border-right: 1px solid rgba(0, 0, 0, 0.05);
    position: relative;
}

.main-menu li:last-child {
    border-right: none;
}

.main-menu a {
    display: block;
    padding: 18px 0;
    font-weight: bold;
    color: #333;
    transition: all 0.3s ease;
    border-bottom: 3px solid transparent;
    font-size: 1.05rem;
    letter-spacing: 0.05em;
}

.main-menu a:hover {
    background: #fcfcfc;
    color: var(--primary-green);
    border-bottom: 3px solid var(--primary-green);
}

/* Layout Container - Modernized */
.container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    gap: 40px;
    padding: 0 20px;
    text-align: left;
    /* Reset text align for better readability */
    font-size: 1rem;
    margin-top: 0;
    overflow-x: hidden;
}

/* Sidebars */
.sidebar-left,
.sidebar-right {
    flex: 0 0 220px;
    background: #fff;
    border: 1px solid var(--border-color);
    padding: 10px;
    min-height: calc(100vh - 80px);
}

/* Right Sidebar Specifics */
.sidebar-header-orange {
    background: linear-gradient(to bottom, #f9a825, #f57f17);
    color: #fff;
    padding: 10px;
    text-align: center;
    font-weight: bold;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.flag-icon {
    background: rgba(255, 255, 255, 0.3);
    padding: 2px 6px;
    border-radius: 3px;
    font-size: 0.8rem;
}

.sidebar-intro h4 {
    margin: 0 0 10px 0;
    font-size: 1.1rem;
    color: #000;
}

.sidebar-intro p {
    font-size: 0.8rem;
    line-height: 1.4;
    margin-bottom: 20px;
}

.product-item {
    border: 1px solid #eee;
    /* Softer border */
    border-radius: 8px;
    /* Rounded corners */
    margin-bottom: 20px;
    padding: 15px;
    background: #fff;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.03);
    /* Subtle shadow */
    transition: transform 0.3s, box-shadow 0.3s;
}

.product-item:hover {
    transform: translateY(-5px);
    /* Lift effect */
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.08);
    border-color: #f9a825;
}

.product-item h5 {
    margin: 5px 0;
    font-size: 0.95rem;
    border-bottom: 1px dashed #ddd;
    padding-bottom: 5px;
    text-align: left;
}

.product-item h5 a {
    color: #f57f17;
    text-decoration: underline;
}

.product-content {
    display: flex;
    align-items: flex-start;
    gap: 5px;
    margin-top: 5px;
}

.product-content img {
    width: 60px;
    height: 60px;
    object-fit: contain;
    border: 1px solid #eee;
    flex-shrink: 0;
}

.product-desc {
    font-size: 0.75rem;
    line-height: 1.3;
    color: #333;
    text-align: left;
}

.category-list ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.category-list li {
    margin-bottom: 10px;
}

.category-list a {
    display: flex;
    align-items: center;
    font-weight: bold;
    font-size: 1.1rem;
}

.category-list a::before {
    content: "▶";
    /* Icon placeholder */
    color: var(--accent-orange);
    margin-right: 8px;
    font-size: 1.2rem;
    border: 2px solid var(--accent-orange);
    border-radius: 50%;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
}

.cta-direct {
    text-align: center;
    margin-bottom: 30px;
}

.speech-bubble {
    background: #fff;
    border: 3px solid var(--primary-green);
    border-radius: 20px;
    padding: 15px;
    display: inline-block;
    position: relative;
    font-weight: bold;
    font-size: 1.2rem;
    color: var(--primary-green);
    margin-bottom: 20px;
}

.speech-bubble::after {
    content: '';
    position: absolute;
    bottom: -15px;
    left: 50%;
    transform: translateX(-50%);
    border-width: 15px 15px 0;
    border-style: solid;
    border-color: var(--primary-green) transparent transparent transparent;
}

.phone-display {
    background: #e0f2f1;
    /* Light teal bg */
    padding: 15px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    border-top: 2px solid var(--primary-green);
    border-bottom: 2px solid var(--primary-green);
}

.phone-label {
    font-size: 1rem;
    font-weight: bold;
}

.phone-number {
    font-size: 3rem;
    font-weight: 900;
    color: var(--primary-green);
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);
}

.contact-buttons-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 20px;
}

.contact-btn {
    border: 2px solid #009688;
    /* Teal border */
    padding: 15px;
    display: flex;
    align-items: center;
    position: relative;
    transition: all 0.2s;
}

.contact-btn:hover {
    background: #f0fafa;
}

.contact-btn .icon {
    font-size: 3rem;
    margin-right: 15px;
    color: #009688;
}

.contact-btn .text {
    display: flex;
    flex-direction: column;
}

.contact-btn strong {
    font-size: 1.2rem;
    color: #333;
}

.contact-btn small {
    font-size: 0.8rem;
    color: #666;
}

.click-tag {
    position: absolute;
    bottom: 5px;
    right: 5px;
    background: #009688;
    color: #fff;
    padding: 2px 8px;
    font-size: 0.8rem;
    font-weight: bold;
}

.first-time-user {
    text-align: center;
    margin-bottom: 40px;
}

.first-time-user a {
    background: #8bc34a;
    color: #fff;
    padding: 10px 40px;
    font-size: 1.2rem;
    font-weight: bold;
    display: inline-block;
}

/* Pain Points */
.pain-points {
    background: #fff;
    padding: 20px;
    border: 1px solid #ddd;
    margin-bottom: 30px;
}

.pain-points h3 {
    text-align: center;
    color: #333;
    border-bottom: 2px solid #ddd;
    padding-bottom: 10px;
    margin-top: 0;
}

.pain-points ul {
    list-style: none;
    /* Custom bullets later if needed */
    padding-left: 20px;
}

.pain-points ul li::before {
    content: "- ";
    font-weight: bold;
}

.solution-highlight {
    text-align: center;
    font-weight: bold;
    color: red;
    font-size: 1.3rem;
    margin-top: 15px;
}

/* Reasons */
.reasons h3 {
    background: var(--primary-green);
    color: #fff;
    padding: 10px;
    text-align: center;
    margin-bottom: 20px;
}

.reason-item {
    margin-bottom: 25px;
    border-bottom: 1px solid #f0f0f0;
    padding: 20px;
    background: #fff;
    border-radius: 8px;
    transition: all 0.3s ease;
}

.reason-item:hover {
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
    transform: translateX(5px);
}

.reason-item:last-child {
    border-bottom: none;
}

.reason-item h4 {
    color: var(--primary-green);
    font-size: 1.2rem;
    margin: 0 0 10px 0;
}

.reason-item p {
    margin: 0;
    line-height: 1.6;
}

/* Footer */
footer {
    width: 100%;
    margin: 10px 0 0;
    background: #fff;
    border-top: 1px solid var(--border-color);
    padding: 20px;
    text-align: center;
    font-size: 0.9rem;
    color: #666;
}

/* Responsive */
@media (max-width: 768px) {
    .container {
        flex-direction: column;
    }

    .sidebar-left,
    .sidebar-right,
    .main-content {
        width: 100%;
        flex: none;
        order: 2;
        /* Main content default order check? No, flex column follows source order. */
    }

    /* Move Main Content to top visually if needed, but structurally specific logic might be better. 
       Usually on mobile, Main Content comes first. */
    .main-content {
        order: 1;
    }

    .sidebar-left {
        order: 2;
    }

    .sidebar-right {
        order: 3;
    }

    .main-menu ul {
        flex-direction: column;
    }

    .main-menu li {
        width: 100%;
        border-right: none;
        border-bottom: 1px solid var(--border-color);
    }

    .main-menu a {
        padding: 15px;
        /* Larger tap target */
    }

    /* Hero Slider Mobile */
    .hero-slider {
        height: 300px;
        border-bottom: 3px solid var(--primary-green);
    }

    .hero-overlay-content {
        width: 90%;
        padding: 20px;
    }

    .hero-overlay-content h2 {
        font-size: 1.5rem;
    }

    .hero-overlay-content p {
        font-size: 0.9rem;
    }

    /* Green Banner Mobile */
    .content-top-banner {
        height: auto;
        padding: 20px;
        flex-direction: column;
        text-align: center;
    }

    .content-top-banner .hero-green-text {
        margin-bottom: 15px;
        text-align: center;
    }

    .banner-stack-img {
        max-height: 150px;
        transform: rotate(0deg);
        /* Simplier look */
        width: auto;
    }

    /* Sub Text */
    .banner-sub-text {
        padding: 15px;
    }

    .banner-sub-text p {
        font-size: 0.95rem;
    }

    .phone-number {
        font-size: 1.8rem;
        /* Smaller on mobile */
    }

    .contact-buttons-grid {
        grid-template-columns: 1fr;
    }

    .header-inner {
        flex-direction: column;
        gap: 10px;
        text-align: center;
    }

    /* Table Responsive Wrapper */
    .product-info-table {
        overflow-x: auto;
        display: block;
        width: 100%;
    }

    /* Adjust Price Page Header */
    .price-desc-flex {
        flex-direction: column;
    }
}

/* Industrial Page Styles */
.page-title-section h2 {
    color: #4a6d22;
    /* Dark green text */
    border-left: 10px solid #8bc34a;
    /* Light green accent */
    padding-left: 15px;
    font-size: 1.5rem;
    margin-bottom: 20px;
    background: #f0fafa;
    padding-top: 5px;
    padding-bottom: 5px;
    text-align: left;
}

.section-intro {
    font-size: 0.95rem;
    margin-bottom: 30px;
    text-align: left;
}

.section-header-green {
    background: #c8e6c9;
    /* Light green bg */
    border-left: 10px solid #6c9a33;
    padding: 10px;
    font-weight: bold;
    font-size: 1.2rem;
    margin-bottom: 20px;
    text-align: left;
}

.product-category-section h3 {
    font-size: 1.3rem;
    font-weight: bold;
    margin-bottom: 20px;
    text-align: left;
    border-bottom: 2px solid #333;
    padding-bottom: 5px;
}

.product-detail-item {
    margin-bottom: 40px;
    border-bottom: 1px dashed #ccc;
    padding-bottom: 20px;
}

.product-name {
    font-size: 1.1rem;
    font-weight: bold;
    margin-bottom: 10px;
    text-align: left;
}

.product-detail-flex {
    display: flex;
    gap: 10px;
    align-items: flex-start;
}

.product-img-container {
    width: 120px;
    flex-shrink: 0;
}

.product-img-container img {
    width: 100%;
    border: 1px solid #eee;
}

.product-info-table {
    flex: 1;
}

.product-info-table table {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
    margin-bottom: 15px;
    font-size: 0.85rem;
}

.product-info-table th {
    background: #e8f5e9;
    /* Light green header */
    border: 1px solid #4caf50;
    padding: 5px;
    font-weight: bold;
    color: #333;
}

.product-info-table td {
    border: 1px solid #4caf50;
    padding: 5px;
    vertical-align: middle;
}

.col-color {
    width: 35%;
}

.col-size {
    width: 40%;
}

.col-price {
    width: 25%;
}

.price-cell {
    text-align: right;
}

.color-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2px;
}

.color-grid span {
    display: block;
    border: 1px solid #ccc;
    font-size: 0.7rem;
    text-align: center;
    padding: 2px 0;
}

/* Color Classes */
.c-white {
    background: #fff;
}

.c-gray {
    background: #ccc;
}

.c-black {
    background: #000;
    color: #fff;
}

.c-blue {
    background: #2196f3;
    color: #fff;
}

.c-red {
    background: #f44336;
    color: #fff;
}

.c-yellow {
    background: #ffeb3b;
}

.c-green {
    background: #4caf50;
    color: #fff;
}

.c-special {
    background: #333;
    color: #fff;
}

.c-other {
    background: #eee;
}

.note-text {
    font-size: 0.8rem;
    text-align: left;
    margin-top: -10px;
    margin-bottom: 10px;
}

.product-action {
    width: 80px;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 20px;
}

.btn-price-list {
    background: #ff9800;
    /* Orange */
    color: #fff;
    padding: 5px 10px;
    font-size: 0.8rem;
    text-align: center;
    border: 1px solid #f57c00;
}

/* Main Content Layout Fix */
.main-content {
    flex: 1;
    min-width: 0;
    padding: 0 20px;
}


/* Info Tables Styles (L-2500) */
.green-info-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
    margin-top: 50px;
    border: 2px solid #009e52;
    font-family: 'Noto Sans JP', sans-serif;
}

.green-info-table th {
    background-color: #d1f0db;
    border: 1px solid #009e52;
    padding: 10px;
    text-align: center;
    width: 20%;
    vertical-align: middle;
    font-weight: bold;
    color: #000;
}

.green-info-table td {
    border: 1px solid #009e52;
    padding: 10px;
    vertical-align: middle;
}

.green-table-header {
    background-color: #d1f0db;
    text-align: center;
    font-weight: bold;
    padding: 10px;
    border: 1px solid #009e52;
    border-bottom: 2px solid #009e52;
    font-size: 1.1rem;
}

.brown-header-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 20px;
    border: 2px solid #b38f4d;
    font-size: 0.9rem;
    font-family: 'Noto Sans JP', sans-serif;
}

.brown-header-table th {
    background-color: #e8d0a9;
    border: 1px solid #b38f4d;
    padding: 10px;
    text-align: center;
    width: 15%;
    font-weight: bold;
}

.brown-header-table td {
    border: 1px solid #b38f4d;
    padding: 10px;
}

.brown-title {
    background-color: #e8d0a9;
    text-align: center;
    padding: 8px;
    font-weight: bold;
    border: 1px solid #b38f4d;
    border-bottom: 2px solid #b38f4d;
}

.blue-header-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 20px;
    margin-bottom: 50px;
    border: 2px solid #2d5a9e;
    font-size: 0.9rem;
    font-family: 'Noto Sans JP', sans-serif;
}

.blue-header-table th {
    background-color: #d0e5ff;
    border: 1px solid #2d5a9e;
    padding: 10px;
    text-align: center;
    width: 15%;
    font-weight: bold;
}

.blue-header-table td {
    border: 1px solid #2d5a9e;
    padding: 10px;
}

.blue-title {
    background-color: #d0e5ff;
    text-align: center;
    padding: 8px;
    font-weight: bold;
    border: 1px solid #2d5a9e;
    border-bottom: 2px solid #2d5a9e;
}


/* Left Sidebar Custom Style (Orange Theme) */
.cat-header-box {
    border: 2px solid #009e52;
    /* Temporary - will change to match right sidebar */
    border: 2px solid #f57f17;
    padding: 10px 5px;
    text-align: center;
    margin-bottom: 20px;
    background: #fff;
}

.cat-header-title {
    font-size: 1.1rem;
    font-weight: bold;
    color: #f57f17;
    border-bottom: 1px solid #f57f17;
    display: inline-block;
    padding-bottom: 2px;
    margin-bottom: 5px;
}

.cat-header-subtitle {
    font-size: 0.9rem;
    font-weight: bold;
    color: #009e52;
    /* Photo has green, but user said right sidebar color.. I will use Green for now as per photo structure? No user said USE RIGHT SIDEBAR COLOR. So Orange. */
    color: #f57f17;
}

.cat-list-custom {
    list-style: none;
    padding: 0;
    margin: 0;
}

.cat-item-custom {
    border-bottom: 1px solid #ddd;
    padding: 10px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.cat-item-custom a {
    text-decoration: none;
    color: #333;
    font-weight: 500;
    font-size: 1rem;
    display: block;
    width: 100%;
}

.cat-icon-custom {
    background: #f57f17;
    color: #fff;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.7rem;
    flex-shrink: 0;
}


/* Logo Styles */
.logo a {
    display: flex;
    align-items: center;
    text-decoration: none;
    color: #333;
}

.logo img {
    max-height: 50px;
    width: auto;
    margin-right: 10px;
}

.logo-text {
    font-size: 2rem;
    font-weight: bold;
    font-family: 'Noto Sans JP', sans-serif;
    color: #333;
    letter-spacing: 0.05em;
}

/* Blue Sidebar Styles (Manufacturer List) - Refined Card Style */
.sidebar-maker-list {
    background: #fff;
    border: 1px solid #e0e0e0;
    /* Subtle border for card */
    border-radius: 8px;
    /* Rounded corners */
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    /* Card shadow */
    padding: 20px 15px;
    margin-bottom: 20px;
}

.maker-header {
    text-align: center;
    border: 1px solid #1056a2;
    padding: 0;
    margin-bottom: 15px;
    color: #1056a2;
    font-weight: bold;
    background: #fff;
}

.maker-header .header-main {
    font-size: 1.1rem;
    display: block;
    padding: 5px 0;
    border-bottom: 1px solid #1056a2;
    margin: 0 5px;
}

.maker-header .header-sub {
    font-size: 1.2rem;
    display: block;
    padding: 5px 0;
}

.maker-logo {
    text-align: center;
    margin-bottom: 15px;
    padding: 5px;
}

.maker-logo img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}

.maker-price-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.maker-price-list li {
    border-bottom: 1px solid #1056a2;
    margin-bottom: 10px;
    padding-bottom: 10px;
}

.maker-price-list li:last-child {
    border-bottom: 1px solid #1056a2;
}

.maker-price-list a {
    display: flex;
    align-items: flex-start;
    color: #333;
    text-decoration: none;
    line-height: 1.4;
    font-size: 1rem;
}

.maker-icon {
    margin-right: 10px;
    flex-shrink: 0;
    margin-top: 4px;
}

.icon-play-circle {
    width: 20px;
    height: 20px;
    background: #1056a2;
    border-radius: 50%;
    position: relative;
    display: inline-block;
    vertical-align: middle;
}

.icon-play-circle::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 55%;
    transform: translate(-50%, -50%);
    width: 0;
    height: 0;
    border-top: 4px solid transparent;
    border-bottom: 4px solid transparent;
    border-left: 6px solid #fff;
}

/* Manufacturing Partner Section */
.section-manufacturing-partner {
    background: linear-gradient(135deg, #e6ecf5 0%, #f4f7fb 100%);
    padding: 60px 20px;
    margin-top: 40px;
    font-family: 'Noto Sans JP', sans-serif;
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
}

.man-partner-container {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
    max-width: 100%;
}

/* Left Column */
.man-left-col {
    flex: 1;
    min-width: 300px;
}

.man-section-label {
    font-size: 0.9rem;
    color: #666;
    letter-spacing: 0.05em;
    margin-bottom: 15px;
    font-weight: 500;
    border-bottom: 2px solid #ddd;
    display: inline-block;
    padding-bottom: 5px;
}

.man-heading {
    font-size: 2.2rem;
    line-height: 1.3;
    font-weight: 700;
    color: #1a2b48;
    margin-bottom: 20px;
    letter-spacing: -0.02em;
}

.man-heading span {
    display: block;
}

.man-description {
    font-size: 1rem;
    line-height: 1.8;
    color: #444;
    margin-bottom: 30px;
}

.man-feature-row {
    margin-bottom: 15px;
}

.man-feature-item {
    background: #fff;
    border-radius: 8px;
    padding: 15px 20px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.03);
    border-left: 5px solid transparent;
    transition: transform 0.2s;
}

.man-feature-item:hover {
    transform: translateX(5px);
}

.man-feature-badges {
    margin-bottom: 10px;
}

.man-badge {
    background: linear-gradient(90deg, #e89b4b 0%, #d47a2c 100%);
    color: #fff;
    padding: 5px 12px;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: bold;
    margin-right: 10px;
    box-shadow: 0 2px 4px rgba(232, 155, 75, 0.3);
}

.man-badge-green {
    background: linear-gradient(90deg, #5b8c5a 0%, #3e6b3d 100%);
    box-shadow: 0 2px 4px rgba(91, 140, 90, 0.3);
}

.man-feature-text {
    font-size: 0.95rem;
    color: #333;
    font-weight: 500;
}

/* Right Column */
.man-right-col {
    flex: 1;
    min-width: 300px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.man-value-card {
    background: #fff;
    padding: 20px;
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.03);
    border-left: 4px solid #f0f0f0;
}

.man-value-card h4 {
    margin: 0 0 10px 0;
    font-size: 1.2rem;
    color: #1a2b48;
    font-weight: 700;
}

.man-value-card p {
    margin: 0;
    font-size: 0.9rem;
    color: #555;
}

.btn-consult-cta {
    display: block;
    background: linear-gradient(90deg, #f28e2c 0%, #d9751e 50%, #6b8c42 100%);
    color: #fff;
    text-align: center;
    padding: 18px;
    border-radius: 6px;
    font-size: 1.2rem;
    font-weight: bold;
    text-decoration: none;
    margin-top: 10px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
    transition: opacity 0.3s, transform 0.2s;
    position: relative;
    overflow: hidden;
}

.btn-consult-cta:hover {
    opacity: 0.95;
    transform: translateY(-2px);
}

.btn-consult-cta::after {
    content: '';
    margin-left: 10px;
    font-weight: bold;
}

@media (max-width: 768px) {
    .man-partner-container {
        flex-direction: column;
    }
}


/* Sanpelca Product Page Styles */
.product-page-title {
    border-left: 10px solid #008f5d;
    /* Green accent */
    border-bottom: 2px solid #008f5d;
    padding-left: 15px;
    margin-bottom: 20px;
}

.product-page-title h2 {
    margin: 0;
    font-size: 1.5rem;
    color: #333;
}

.product-header-box {
    background-color: #f2f2f2;
    border-top: 4px solid #1056a2;
    /* Blue top border */
    padding: 15px;
    margin-bottom: 30px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
}

.ph-main {
    font-size: 1.3rem;
    color: #1056a2;
    font-weight: bold;
}

.ph-sub {
    font-size: 1rem;
    font-weight: normal;
}

.ph-desc {
    font-size: 1rem;
    color: #000;
    font-weight: bold;
}

.product-intro-flex {
    display: flex;
    gap: 20px;
    margin-bottom: 40px;
}

.intro-img {
    flex: 0 0 250px;
    position: relative;
    border: 1px solid #ddd;
}

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

.img-caption-overlay {
    position: absolute;
    bottom: 10px;
    right: 0;
    background: rgba(255, 255, 255, 0.9);
    color: #333;
    font-weight: bold;
    padding: 5px 10px;
    text-align: right;
    font-size: 1.2rem;
    box-shadow: -2px -2px 5px rgba(0, 0, 0, 0.1);
    border-radius: 4px 0 0 4px;
}

.intro-text {
    flex: 1;
    font-size: 1rem;
    line-height: 1.8;
}

.product-details-grid {
    display: flex;
    gap: 30px;
    background-color: #fcfcfc;
    padding: 20px 0;
}

.detail-column {
    flex: 1;
    background: #fdfdfd;
    padding: 20px;
    border-radius: 5px;
    border: 1px solid #eee;
}

.detail-column h3 {
    color: #1056a2;
    font-size: 1.2rem;
    margin-top: 0;
    margin-bottom: 15px;
    border-bottom: 1px solid #ddd;
    padding-bottom: 10px;
}

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

.detail-list li {
    padding-left: 15px;
    margin-bottom: 8px;
    position: relative;
    color: #0fabc6;
    /* Light blue bullet color */
    font-weight: 500;
    /* white-space: nowrap; Removed to prevent overflow on small screens or long text */
}

.detail-list li::before {
    content: '';
    position: absolute;
    left: 0;
    font-size: 0.8rem;
    color: #1056a2;
    /* Dark blue square */
    top: 2px;
}

.detail-list li:hover {
    color: #1056a2;
}

@media (max-width: 768px) {
    .product-header-box {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }

    .product-intro-flex {
        flex-direction: column;
    }

    .intro-img {
        flex: auto;
        width: 100%;
    }

    .product-details-grid {
        flex-direction: column;
    }
}

/* Sanpelca Grade Section */
.product-grade-section {
    margin-top: 40px;
    margin-bottom: 40px;
}

.grade-text-block {
    margin-bottom: 30px;
    font-size: 1rem;
    line-height: 1.8;
}

.grade-text-block p {
    margin-bottom: 15px;
}

.product-grade-box {
    border: 2px solid #1056a2;
    padding: 30px;
    max-width: 800px;
    margin: 0 auto;
    background: #fff;
    text-align: center;
}

.product-grade-box h4 {
    color: #1056a2;
    font-size: 1.5rem;
    margin-top: 0;
    margin-bottom: 20px;
}

.grade-flex {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 40px;
    font-weight: bold;
    color: #1056a2;
    font-size: 1.2rem;
    flex-wrap: wrap;
}

.grade-col {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 150px;
}

.grade-separator {
    font-size: 2rem;
    color: #1056a2;
    margin: 0 10px;
}

.grade-label {
    font-size: 1.1rem;
    color: #555;
    margin-top: 5px;
}

/* Responsive for grade box */
@media (max-width: 600px) {
    .grade-flex {
        flex-direction: column;
        gap: 20px;
    }

    .grade-separator {
        transform: rotate(90deg);
    }
}


/* Sanpelca Lineup Grid */
.lineup-section {
    margin-bottom: 60px;
}

.lineup-header {
    border-bottom: 4px solid #1056a2;
    padding-bottom: 10px;
    margin-bottom: 20px;
}

.lineup-header h3 {
    margin: 0;
    font-size: 1.5rem;
    color: #000;
    font-weight: bold;
}

.lineup-header-sub {
    margin-left: 20px;
    font-size: 1.4rem;
}

.lineup-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 15px;
}

.lineup-item {
    border: 1px solid #ddd;
    text-align: center;
    background: #fff;
    padding-bottom: 5px;
}

.swatch-box {
    width: 100%;
    height: 80px;
    margin-bottom: 8px;
    border-bottom: 1px solid #eee;
}

.lineup-code {
    font-weight: 500;
    color: #333;
}

/* Swatch Colors */
.bg-l600 {
    background-color: #666;
}

/* Dark Grey */
.bg-l900 {
    background-color: #999;
}

/* Grey */
.bg-l900n {
    background-color: #222;
}

/* Black */
.bg-l1002 {
    background-color: #0066cc;
}

/* Blue */
.bg-l1001nn {
    background-color: #000;
}

/* Deep Black */
.bg-l1000 {
    background-color: #fff;
}

/* White */

.bg-l1100 {
    background-color: #444;
}

/* Darker Grey */
.bg-l1400 {
    background-color: #777;
}

/* Grey */
.bg-l1500 {
    background-color: #aaa;
}

/* Light Grey */
.bg-l2000 {
    background-color: #0099ff;
}

/* Lighter Blue */
.bg-l2500 {
    background-color: #6d6d6d;
}

/* Grey */

.bg-l2500nn {
    background-color: #4a4a4a;
}

/* Dark Grey */
.bg-l2501nnn {
    background-color: #888;
}

/* Grey */
.bg-l2501fr {
    background-color: #594a42;
}

/* Dark Brownish/Grey */
.bg-l4000 {
    background-color: #fcfcfc;
}

/* Off White */

@media (max-width: 768px) {
    .lineup-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 480px) {
    .lineup-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}


/* Sanpelca Spec Table */
.spec-table-section {
    margin-top: 40px;
    /* Added spacing from top content */
    margin-bottom: 60px;
    overflow-x: auto;
    /* Enable horizontal scroll on mobile */
}

.spec-table {
    width: 100%;
    border-collapse: collapse;
    border: 2px solid #008f5d;
    /* Green border */
    font-size: 0.75rem;
    /* Reduced font size as requested */
    min-width: 100%;
    /* Allow fitting in container */
}

.spec-table th,
.spec-table td {
    border: 1px solid #008f5d;
    padding: 4px 2px;
    /* Compact padding */
    text-align: center;
    vertical-align: middle;
}

.spec-table th {
    background-color: #eaf7f0;
    /* Light green bg */
    font-weight: bold;
    color: #000;
}



.symbol-circle {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 1px solid #333;
    border-radius: 50%;
}

.symbol-triangle {
    display: inline-block;
}

/* Responsive adjustments */
@media (max-width: 768px) {

    .spec-table th,
    .spec-table td {
        padding: 2px 1px;
        font-size: 0.65rem;
        /* Further reduce for mobile */
    }
}

/* Sanpelca Price List Section */
.price-list-section {
    margin-bottom: 60px;
}

.price-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    border-bottom: 2px solid #ddd;
    padding: 30px 0;
    gap: 20px;
}

.price-info-col {
    flex: 0 0 150px;
    text-align: left;
}

.price-info-col h3 {
    margin: 0 0 10px 0;
    font-size: 1.8rem;
    color: #000;
}

.swatch-rect {
    width: 120px;
    height: 80px;
    border: 1px solid #ccc;
    margin-bottom: 10px;
}

.price-info-col .sub-info {
    font-size: 0.85rem;
    color: #333;
    font-weight: bold;
}

.price-table-col {
    flex: 1;
}

/* Mini Table Styles */
.mini-price-table {
    width: 100%;
    border-collapse: collapse;
    border: 2px solid #009933;
    /* Green border */
    font-size: 0.9rem;
    background: #fff;
    margin-bottom: 5px;
}

.mini-price-table th,
.mini-price-table td {
    border: 1px solid #009933;
    padding: 5px 10px;
    text-align: center;
}

.mini-price-table th {
    background-color: #d9f2d9;
    /* Light green header */
    font-weight: bold;
}

.price-note {
    font-size: 0.8rem;
    color: #333;
    margin-top: 2px;
}

.price-btn-col {
    flex: 0 0 120px;
    display: flex;
    justify-content: center;
    align-items: flex-start;
}

.btn-price-list {
    display: inline-block;
    background-color: #ff9900;
    color: #fff;
    /* Text color inside button */
    padding: 10px 15px;
    text-decoration: none;
    font-weight: bold;
    border-radius: 4px;
    /* Small radius */
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    font-size: 0.9rem;
    white-space: nowrap;
}

.btn-price-list:hover {
    background-color: #e68a00;
    color: #fff;
}

.btn-contact-green {
    display: inline-block;
    background-color: #00c896;
    /* Bright Green */
    color: #fff;
    padding: 10px 15px;
    text-decoration: none;
    font-weight: bold;
    border-radius: 4px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    font-size: 0.85rem;
    line-height: 1.4;
    text-align: center;
}

.btn-contact-green:hover {
    background-color: #00a87e;
    color: #fff;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .price-row {
        flex-direction: column;
        align-items: center;
    }

    .price-info-col {
        text-align: center;
        flex: auto;
    }

    .swatch-rect {
        margin: 0 auto 10px;
    }

    .price-btn-col {
        width: 100%;
        margin-top: 15px;
    }

    .btn-price-list {
        width: 100%;
        text-align: center;
    }
}


/* Color Swatch Grid for Price Table */
.color-grid-container {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2px;
    margin-bottom: 5px;
    background: #fdfdfd;
}

.mini-swatch {
    width: 100%;
    height: 20px;
    border: 1px solid #ccc;
    text-align: center;
    font-size: 0.7rem;
    line-height: 20px;
    color: #fff;
    text-shadow: 0 0 2px #000;
    font-weight: bold;
    display: flex;
    justify-content: center;
    align-items: center;
}

.swatch-text-only {
    width: 100%;
    height: 20px;
    background: #eee;
    border: 1px solid #ccc;
    font-size: 0.7rem;
    line-height: 20px;
    color: #333;
    text-align: center;
    grid-column: span 4;
    /* Make full width for '(others)' */
}

/* Specific Mini Swatch Colors */
.ms-white {
    background-color: #fff;
    color: #333;
    text-shadow: none;
}

.ms-gray {
    background-color: #999;
}

.ms-black {
    background-color: #000;
}

.ms-blue {
    background-color: #0066cc;
}

.ms-red {
    background-color: #cc0000;
}

.ms-yellow {
    background-color: #ffcc00;
    color: #333;
    text-shadow: none;
}

.ms-green {
    background-color: #33cc33;
}

.ms-sblack {
    background-color: #222;
}

/* Special Black */


/* L-1400 Swatch Extensions */
.c-sblack {
    background-color: #222;
    color: #fff;
    border: 1px solid #000;
}

.c-other {
    background-color: #eee;
    color: #333;
    border: 1px solid #ccc;
    font-size: 0.8rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Sanpelca EVA Colors */
.bg-c600 {
    background-color: #f5f5f5;
    border: 1px solid #eee;
}

/* White */
.bg-c700 {
    background-color: #7d8e68;
}

/* Olive Green */
.bg-s900 {
    background-color: #e0e0e0;
}

/* Light Gray */
.bg-c910n {
    background-color: #0088dd;
}

/* Bright Blue */
.bg-c1000 {
    background-color: #4a4a4a;
}

/* Dark Gray */
.bg-cf1000 {
    background-color: #f8f8f8;
    border: 1px solid #eee;
}

/* Off White */
.bg-tc1000 {
    background-color: #66ccff;
}

/* Sky Blue */
.bg-c1202 {
    background-color: #3399cc;
}

/* Medium Blue */
.bg-c1400 {
    background-color: #ffffff;
    border: 1px solid #eee;
}

/* White */
.bg-c3000 {
    background-color: #ffffff;
    border: 1px solid #eee;
}

/* White */
.bg-sl3000 {
    background-color: #ececc4;
}

.bg-r06 {
    background-color: #4a4a4a;
}

.bg-r08 {
    background-color: #626161;
}

.bg-r12 {
    background-color: #424242;
}

.bg-r15 {
    background-color: #353434;
}

.bg-r25 {
    background-color: #7e7e7e;
}

.bg-lcx50 {
    background-color: #7e7e7e;
}

.bg-lcx150 {
    background-color: #7e7e7e;
}

.bg-lcx150m {
    background-color: #7e7e7e;
}

.bg-lcx2001 {
    background-color: #7e7e7e;
}

.bg-lcx2002 {
    background-color: #7e7e7e;
}

.bg-lcx300 {
    background-color: #7e7e7e;
}

.bg-lcx150t {
    background-color: #7e7e7e;
}

.bg-ox2001 {
    background-color: #7e7e7e;
}

.bg-sx150h {
    background-color: #7e7e7e;
}

.bg-sx300h {
    background-color: #ff69b4;
}

.bg-lc150 {
    background-color: #F5DEB3;
}

.bg-lc150s {
    background-color: #fff8dc;
}

.bg-lc3001 {
    background-color: #7e7e7e;
}

.bg-lc3002d {
    background-color: #7e7e7e;
}

.bg-lr3002 {
    background-color: #7e7e7e;
}

.bg-lc3002 {
    background-color: #7e7e7e;
}

.bg-lc3003 {
    background-color: #ffffe0;
}

.bg-lc30002 {
    background-color: #7e7e7e;
}

.bg-lc30002nn {
    background-color: #7e7e7e;
}

.bg-lc30012 {
    background-color: #7e7e7e;
}

.bg-lc30012d {
    background-color: #7e7e7e;
}
/* Pale Yellow */


/* =========================================
   Sanpelca Functional Page (products_sanpelca_func.html) Fixes
   ========================================= */

/* Header Theme Modifiers (Extending .product-header-box) */
.product-header-box.blue-theme {
    border-top: 4px solid #1056a2;
    background-color: #f2f2f2;
}

.product-header-box.blue-theme .ph-main {
    color: #1056a2;
}

.product-header-box.blue-theme .ph-desc {
    color: #333;
}

/* Detail Column Modifiers (Extending .detail-column) */
.detail-column.border-blue {
    border-top: 4px solid #1056a2;
}

.detail-column.border-green {
    border-top: 4px solid #008f5d;
}

/* Grade Comparison Box (Specific to Functional Page) */
.grade-comparison-box {
    border: 3px solid #1056a2;
    padding: 30px;
    background: #fff;
    border-radius: 10px;
    max-width: 900px;
    margin: 40px auto;
}

.grade-row {
    margin-bottom: 40px;
}

.grade-row:last-child {
    margin-bottom: 0;
}

.grade-title.text-blue {
    color: #1056a2;
}

.grade-scale {
    background-color: #f4f9ff;
    padding: 20px;
    border-radius: 8px;
    text-align: center;
}

.scale-item {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
    font-size: 1rem;
    color: #444;
}

.scale-item:last-child {
    margin-bottom: 0;
}

.scale-label {
    font-weight: bold;
    display: inline-block;
    padding: 2px 8px;
    background: #e1eaf5;
    border-radius: 4px;
}

.scale-value {
    font-size: 1.4rem;
    font-weight: bold;
    color: #1056a2;
    font-family: 'Arial', sans-serif;
}

.scale-desc {
    font-weight: bold;
    color: #d64a28;
}

.scale-arrow {
    font-size: 1.2rem;
    color: #999;
    margin: 0 10px;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .grade-comparison-box {
        padding: 15px;
    }

    .scale-item {
        flex-direction: column;
        gap: 5px;
    }

    .scale-arrow {
        transform: rotate(90deg);
        margin: 5px 0;
    }
}

/* Functional Type Grids */
.func-grid-section {
    margin-bottom: 50px;
}

.func-grid-header {
    border-bottom: 4px solid #1056a2;
    margin-bottom: 20px;
    padding-bottom: 5px;
}

.func-grid-header h3 {
    margin: 0;
    font-size: 1.5rem;
    color: #000;
    font-weight: bold;
}

.lineup-grid.func-type {
    grid-template-columns: repeat(3, 1fr);
    /* 3 columns as per image */
    gap: 20px;
    max-width: 800px;
    /* Limit width for better appearance */
    margin: 0 auto;
    /* Center it */
}

/* Functional Type Specific Colors */
.bg-hg05 {
    background-color: #00c896;
    /* Bright Green */
}

.bg-hg10 {
    background-color: #ffcc99;
    /* Pale Orange */
}

.bg-g15,
.bg-t15,
.bg-t1500,
.bg-ssa06 {
    background-color: #222;
    /* Black/Dark Grey */
}

@media (max-width: 600px) {
    .lineup-grid.func-type {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Sanpelca Product Page Specifics */
.price-list-section {
    margin-top: 40px;
}

.price-row {
    display: flex;
    flex-wrap: nowrap;
    /* overflow-x: auto; Removed */
    gap: 15px;
    border-bottom: 1px solid #eee;
    padding-bottom: 20px;
    margin-bottom: 20px;
    align-items: flex-start;
}

.price-info-col {
    flex: 0 0 180px;
    text-align: left;
}

.price-info-col h3 {
    font-size: 1.5rem;
    font-weight: bold;
    margin: 0 0 5px 0;
    color: #333;
}

.sub-info {
    font-size: 0.9rem;
    color: #666;
    margin-bottom: 10px;
    line-height: 1.4;
}

.swatch-rect {
    width: 60px;
    height: 40px;
    border: 1px solid #ccc;
    margin-top: 5px;
    box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1);
}

.price-table-col {
    flex: 1;
    min-width: 320px;
}

.mini-price-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
    margin-bottom: 5px;
}

.mini-price-table th {
    background-color: #f2f2f2;
    border: 1px solid #ccc;
    padding: 6px;
    text-align: center;
    font-weight: normal;
    color: #333;
}

.mini-price-table td {
    border: 1px solid #ccc;
    padding: 6px;
    text-align: center;
}

.price-note {
    font-size: 0.8rem;
    color: #666;
    text-align: right;
    margin-top: 2px;
}

.price-btn-col {
    flex: 0 0 100px;
    text-align: center;
    padding-top: 10px;
}

.btn-price-list {
    display: inline-block;
    background-color: #f57f17;
    color: #fff;
    padding: 8px 12px;
    text-decoration: none;
    border-radius: 4px;
    font-size: 0.9rem;
    transition: background-color 0.3s;
}

.btn-price-list:hover {
    background-color: #f9a825;
}

/* 2カラム化 */
.container.two-col{
  max-width: 1200px;
  margin: 0 auto;
  padding: 24px 16px;
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 24px;
}

/* 左サイドを追従 */
.sidebar-left{
  position: sticky;
  top: 100px;
  align-self: start;
  min-height: calc(100vh - 80px);
}

/* 下に移したおすすめセクション */
.recommended-section{
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px 40px;
}

.recommended-section .sidebar-right{
  width: 100%;
  margin-top: 24px;
}

/* スマホは1カラム */
@media (max-width: 900px){
  .container.two-col{
    grid-template-columns: 1fr;
  }
  .sidebar-left{
    position: static;
  }
}

/* ===== モダン電話CTA ===== */
.cta-call-modern{
  margin: 50px 0;
}

.cta-card{
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 30px;
  padding: 30px 40px;
  border-radius: 24px;
  background: linear-gradient(135deg, #e8f5e9, #f4fbf6);
  box-shadow: 0 12px 35px rgba(0,0,0,0.08);
  flex-wrap: wrap;
}

.cta-left{
  display: flex;
  align-items: center;
  gap: 20px;
}

.cta-icon{
  width: 70px;
  height: 70px;
  background: #2f7d32;
  color: white;
  font-size: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
}

.cta-main{
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 6px;
}

.cta-sub{
  font-size: 14px;
  color: #555;
}

.cta-right{
  text-align: right;
}

.cta-label{
  display: block;
  font-size: 14px;
  color: #666;
  margin-bottom: 8px;
}

.cta-phone{
  font-size: 26px;
  font-weight: bold;
  color: #2f7d32;
  text-decoration: none;
  letter-spacing: 1px;
}

.cta-phone:hover{
  opacity: 0.8;
}

/* スマホ対応 */
@media (max-width: 768px){
  .cta-card{
    flex-direction: column;
    text-align: center;
  }

  .cta-left{
    flex-direction: column;
  }

  .cta-right{
    text-align: center;
  }
}

/* ===== クリック率重視：CTAカード ===== */
.contact-cta-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin: 26px 0 10px;
}

.contact-cta{
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 18px 18px 18px 20px;
  border-radius: 18px;
  text-decoration: none;
  background: #fff;
  border: 2px solid rgba(47,125,50,0.25);
  box-shadow: 0 10px 24px rgba(0,0,0,0.08);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  position: relative;
  overflow: hidden;
}

.contact-cta::before{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(47,125,50,0.10), rgba(47,125,50,0));
  opacity: 0;
  transition: opacity .18s ease;
}

.contact-cta:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(0,0,0,0.12);
  border-color: rgba(47,125,50,0.45);
}

.contact-cta:hover::before{
  opacity: 1;
}

.contact-cta__icon{
  width: 54px;
  height: 54px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  font-size: 26px;
  background: rgba(47,125,50,0.10);
  flex: 0 0 54px;
  z-index: 1;
}

.contact-cta__body{
  flex: 1;
  min-width: 0;
  z-index: 1;
}

.contact-cta__title{
  font-size: 18px;
  font-weight: 800;
  color: #222;
  line-height: 1.2;
  margin-bottom: 6px;
}

.contact-cta__desc{
  font-size: 13px;
  color: #444;
  line-height: 1.4;
}

.contact-cta__hint{
  font-size: 12px;
  color: #2f7d32;
  font-weight: 700;
  margin-top: 6px;
}

.contact-cta__action{
  display: flex;
  align-items: center;
  gap: 10px;
  z-index: 1;
}

.contact-cta__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 14px;
  border-radius: 999px;
  background: #2f7d32;
  color: #fff;
  font-weight: 800;
  font-size: 13px;
  white-space: nowrap;
}

.contact-cta__arrow{
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(47,125,50,0.12);
  color: #2f7d32;
  font-size: 22px;
  font-weight: 900;
}

/* 色の差別化（FAX / MAIL） */
.contact-cta--fax .contact-cta__icon{ background: rgba(0,150,136,0.12); }
.contact-cta--fax .contact-cta__hint{ color: #009688; }
.contact-cta--fax .contact-cta__btn{ background: #009688; }
.contact-cta--fax .contact-cta__arrow{ background: rgba(0,150,136,0.12); color: #009688; }

.contact-cta--mail .contact-cta__icon{ background: rgba(47,125,50,0.10); }

/* スマホ：縦並び＆ボタンを大きく */
@media (max-width: 820px){
  .contact-cta-grid{
    grid-template-columns: 1fr;
  }
  .contact-cta{
    padding: 18px;
  }
  .contact-cta__btn{
    padding: 12px 16px;
    font-size: 14px;
  }
}

/* 文字と背景装飾は非表示 */
.hero-green-text,
.hero-green-bg-decor {
  display: none !important;
}

/* ヒーロー背景を消す（白 or 透明に） */
.hero-green-custom {
  background: transparent !important;   /* 白にしたいなら #fff */
  border-bottom: none !important;
}

/* ヒーローの高さは画像メインに */
.content-top-banner.hero-green-custom {
  height: 350px; /* 好みで 320〜420px くらい */
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 20px;
  position: relative;
  overflow: hidden;
}

/* 画像を主役に（中央・大きめ） */
.hero-green-image-container {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 画像サイズ調整（比率維持で大きく） */
.hero-green-image-container img {
  height: 90%;
  width: auto;
  max-width: 100%;
  object-fit: contain;
  transform: rotate(0deg); /* 傾き不要なら0、傾けるなら -3deg など */
  filter: drop-shadow(0 12px 24px rgba(0,0,0,0.25));
}

/* ヒーローを画面いっぱいの横幅にする（背景だけ全幅） */
.content-top-banner {
  width: 100vw;
  margin-left: calc(50% - 50vw);
}

/* ヒーローの中身は最大幅1200pxで中央にする */
.content-top-banner .hero-inner {
  max-width: 1200px;
  margin: 0 auto;
  height: 380px;          /* 好みで調整 */
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 20px;
}

/* 画像を主役に（比率維持） */
.content-top-banner .hero-inner img {
  height: 90%;
  width: auto;
  max-width: 100%;
  object-fit: contain;
  transform: rotate(0deg); /* 傾き：なしなら 0deg */
  filter: drop-shadow(0 12px 24px rgba(0,0,0,0.25));
}

body {
  margin: 0;
}

/* ===== Sidebar Modern Industrial Design ===== */

.sidebar-left {
    background: #1e2429;
    border: none;
    padding: 0;
    color: #fff;
}

.sidebar-maker-list {
    padding: 25px 20px;
}

.maker-header {
    text-align: center;
    border: 1px solid rgba(255,255,255,0.2);
    padding: 15px 10px;
    margin-bottom: 25px;
}

.header-main {
    display: block;
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: 0.1em;
}

.header-sub {
    display: block;
    font-size: 1.3rem;
    font-weight: 700;
    margin-top: 5px;
}

/* 会社名テキスト */
.maker-company-name {
    text-align: center;
    font-size: 0.95rem;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid rgba(255,255,255,0.15);
    letter-spacing: 0.05em;
    opacity: 0.9;
}

/* リスト */
.maker-price-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.maker-price-list li {
    border-bottom: 1px solid rgba(255,255,255,0.08);
}

.maker-price-list a {
    display: flex;
    align-items: center;
    padding: 14px 10px;
    color: #000;
    text-decoration: none;
    transition: all 0.3s ease;
    font-size: 1,0rem;
}

.maker-price-list a:hover {
    background: #2b3238;
    color: #4CAF50;
    padding-left: 18px;
}

/* 丸アイコン */
.maker-icon {
    width: 10px;
    height: 10px;
    background: #4CAF50;
    border-radius: 50%;
    margin-right: 12px;
}
.maker-company-name{
  color: #000;
  font-weight: 600;
  font-size: 1.5rem
}

/* =========================================================
   Sanpelca Page - Full Redesign (keep classes)
   そのまま style.css の最後に追記してください
========================================================= */

/* ---------- Base ---------- */



/* ---------- Header ---------- */








/* ---------- Hero Slider (visual refresh) ---------- */


/* スライド画像が無い場合でも“それっぽい動く背景”に見せる */






/* ---------- Main Menu ---------- */


/* ---------- Layout: 2 columns ---------- */
body.sanpelca-page .container{
  max-width: 1200px;
  margin: 0 auto;
  padding: 22px 16px 40px;
  display: grid;
  grid-template-columns: 290px 1fr;
  gap: 18px;
  align-items: start;
}

/* ---------- Left Sidebar (sticky card) ---------- */
body.sanpelca-page .sidebar-left{
  position: sticky;
  top: 90px;
  align-self: start;
}

body.sanpelca-page .sidebar-maker-list{
  background: #fff;
  border: 1px solid rgba(15,23,42,0.08);
  border-radius: 18px;
  box-shadow: 0 10px 26px rgba(15,23,42,0.06);
  overflow:hidden;
}

body.sanpelca-page .maker-header{
  padding: 14px 16px;
  background: linear-gradient(135deg, rgba(16,185,129,0.12), rgba(59,130,246,0.10));
  border-bottom: 1px solid rgba(15,23,42,0.08);
}

body.sanpelca-page .header-sub{
  font-weight: 900;
  letter-spacing: .04em;
}

body.sanpelca-page .maker-company-name{
  padding: 12px 16px 0;
  font-weight: 900;
  color: #0f172a;
}

body.sanpelca-page .maker-price-list{
  list-style:none;
  padding: 12px;
  margin: 0;
  display:flex;
  flex-direction: column;
  gap: 8px;
}

body.sanpelca-page .maker-price-list a{
  display:flex;
  gap: 10px;
  padding: 12px 12px;
  border-radius: 14px;
  text-decoration:none;
  background: #f8fafc;
  border: 1px solid rgba(15,23,42,0.06);
  transition: transform .15s ease, background .15s ease, border-color .15s ease;
  font-weight: 800;
  font-size: 13px;
}
body.sanpelca-page .maker-price-list a:hover{
  transform: translateY(-1px);
  background: #eef2ff;
  border-color: rgba(59,130,246,0.28);
}

/* ---------- Main Content as “cards” ---------- */
body.sanpelca-page .main-content{
  display:flex;
  flex-direction: column;
  gap: 16px;
}

/* title bar -> modern */
body.sanpelca-page .product-page-title{
  background: #fff;
  border: 1px solid rgba(15,23,42,0.08);
  border-radius: 18px;
  box-shadow: 0 10px 26px rgba(15,23,42,0.06);
  padding: 18px 18px;
}
body.sanpelca-page .product-page-title h2{
  margin: 0;
  font-size: 18px;
  font-weight: 900;
}

/* header box -> pill headline */
body.sanpelca-page .product-header-box{
  background: linear-gradient(135deg, #B0E0E6, #B0E0E6);
  color: #fff;
  border-radius: 18px;
  padding: 18px 18px;
  box-shadow: 0 16px 40px rgba(2,6,23,0.18);
}
body.sanpelca-page .ph-main{
  font-weight: 900;
  font-size: 18px;
}
body.sanpelca-page .ph-sub{
  font-weight: 700;
  opacity: .9;
  font-size: 13px;
}
body.sanpelca-page .ph-desc{
  margin-top: 6px;
  opacity: .85;
  font-size: 13px;
}

/* intro -> image card + text card */
body.sanpelca-page .product-intro-flex{
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 14px;
}

body.sanpelca-page .intro-img{
  position: relative;
  border-radius: 18px;
  overflow:hidden;
  border: 1px solid rgba(15,23,42,0.08);
  box-shadow: 0 10px 26px rgba(15,23,42,0.06);
  background:#fff;
}
body.sanpelca-page .intro-img img{
  width:100%;
  height: 100%;
  object-fit: cover;
}
body.sanpelca-page .img-caption-overlay{
  position:absolute;
  left: 14px;
  bottom: 14px;
  padding: 10px 12px;
  border-radius: 14px;
  background: #ADD8E6;
  color: #111;
  font-weight: 900;
  line-height: 1.2;
}

body.sanpelca-page .intro-text{
  background:#fff;
  border: 1px solid rgba(15,23,42,0.08);
  border-radius: 18px;
  box-shadow: 0 10px 26px rgba(15,23,42,0.06);
  padding: 16px 18px;
}
body.sanpelca-page .intro-text p{
  margin: 0 0 10px;
}
body.sanpelca-page .intro-text p:last-child{ margin-bottom: 0; }

/* details grid -> cards */
body.sanpelca-page .product-details-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

body.sanpelca-page .detail-column{
  background:#fff;
  border: 1px solid rgba(15,23,42,0.08);
  border-radius: 18px;
  box-shadow: 0 10px 26px rgba(15,23,42,0.06);
  padding: 16px 18px;
}

body.sanpelca-page .detail-column h3{
  margin: 0 0 10px;
  font-size: 16px;
  font-weight: 900;
}

body.sanpelca-page .detail-list{
  margin: 0;
  padding-left: 18px;
}
body.sanpelca-page .detail-list li{
  margin: 4px 0;
}

/* grade section -> split */
body.sanpelca-page .product-grade-section{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 14px;
}

body.sanpelca-page .grade-text-block{
  background:#fff;
  border: 1px solid rgba(15,23,42,0.08);
  border-radius: 18px;
  box-shadow: 0 10px 26px rgba(15,23,42,0.06);
  padding: 16px 18px;
}

body.sanpelca-page .product-grade-box{
  background: linear-gradient(135deg, rgba(16,185,129,0.12), rgba(59,130,246,0.10));
  border: 1px solid rgba(15,23,42,0.08);
  border-radius: 18px;
  box-shadow: 0 10px 26px rgba(15,23,42,0.06);
  padding: 16px 18px;
  margin-top: 30px;
}

body.sanpelca-page .product-grade-box h4{
  margin: 0 0 10px;
  font-size: 15px;
  font-weight: 900;
}

body.sanpelca-page .grade-flex{
  display:flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

body.sanpelca-page .grade-col{
  display:flex;
  flex-direction: column;
  gap: 6px;
  font-weight: 800;
}

body.sanpelca-page .grade-label{
  display:inline-block;
  width: fit-content;
  padding: 6px 10px;
  border-radius: 999px;
  background: #0f172a;
  color:#fff;
  font-size: 12px;
}

/* lineup grid -> modern “chips” */
body.sanpelca-page .lineup-section{
  background:#fff;
  border: 1px solid rgba(15,23,42,0.08);
  border-radius: 18px;
  box-shadow: 0 10px 26px rgba(15,23,42,0.06);
  padding: 16px 18px;
}

body.sanpelca-page .lineup-header h3{
  margin: 0 0 12px;
  font-size: 16px;
  font-weight: 900;
}

body.sanpelca-page .lineup-grid{
  display:grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 10px;
}

body.sanpelca-page .lineup-item{
  border: 1px solid rgba(15,23,42,0.08);
  border-radius: 14px;
  background: #f8fafc;
  padding: 10px;
  display:flex;
  flex-direction: column;
  gap: 8px;
  align-items: center;
  justify-content: center;
  transition: transform .15s ease, box-shadow .15s ease;
}
body.sanpelca-page .lineup-item:hover{
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(15,23,42,0.10);
}

body.sanpelca-page .swatch-box{
  width: 100%;
  height: 30px;
  border-radius: 10px;
  border: 1px solid rgba(15,23,42,0.12);
}

body.sanpelca-page .lineup-code{
  font-weight: 900;
  font-size: 13px;
}

/* spec table -> “読みやすいプロ表” */
body.sanpelca-page .spec-table-section{
  background:#fff;
  border: 1px solid rgba(15,23,42,0.08);
  border-radius: 18px;
  box-shadow: 0 10px 26px rgba(15,23,42,0.06);
  padding: 12px;
  overflow:auto;
}

body.sanpelca-page .spec-table{
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  min-width: 980px;
  font-size: 12px;
}

body.sanpelca-page .spec-table thead th{
  position: sticky;
  top: 0;
  z-index: 1;
  background: #0f172a;
  color: #fff;
  padding: 10px 8px;
  border-right: 1px solid rgba(255,255,255,0.12);
  white-space: nowrap;
}
body.sanpelca-page .spec-table thead th:first-child{
  border-top-left-radius: 12px;
}
body.sanpelca-page .spec-table thead th:last-child{
  border-top-right-radius: 12px;
  border-right: 0;
}

body.sanpelca-page .spec-table td{
  padding: 9px 8px;
  border-bottom: 1px solid rgba(15,23,42,0.08);
  border-right: 1px solid rgba(15,23,42,0.06);
  background:#fff;
  white-space: nowrap;
}
body.sanpelca-page .spec-table td:last-child{ border-right: 0; }

body.sanpelca-page .spec-table tbody tr:nth-child(2n) td{
  background: #f8fafc;
}

body.sanpelca-page .spec-cell-grade{
  font-weight: 900;
  color: #0f172a;
}

/* price list -> big cards */
body.sanpelca-page .price-list-section{
  display:flex;
  flex-direction: column;
  gap: 14px;
}

/* 既存 price-row を“カード”へ */
body.sanpelca-page .price-row{
  background:#fff;
  border: 1px solid rgba(15,23,42,0.08);
  border-radius: 18px;
  box-shadow: 0 10px 26px rgba(15,23,42,0.06);
  padding: 16px;
  display:grid;
  grid-template-columns: 220px 1fr 140px;
  gap: 14px;
  align-items: start;
}

body.sanpelca-page .price-info-col h3{
  margin: 0 0 8px;
  font-size: 18px;
  font-weight: 900;
}

body.sanpelca-page .sub-info{
  font-size: 12px;
  font-weight: 800;
  color: #0f172a;
  opacity: .85;
  margin-bottom: 8px;
}

body.sanpelca-page .swatch-rect{
  width: 140px;
  height: 56px;
  border-radius: 14px;
  border: 1px solid rgba(15,23,42,0.12);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.4);
}

/* mini table modern */
body.sanpelca-page .mini-price-table{
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  overflow:hidden;
  border-radius: 14px;
  border: 1px solid rgba(15,23,42,0.08);
  font-size: 12px;
  background:#fff;
}

body.sanpelca-page .mini-price-table th{
  background: #f1f5f9;
  color:#0f172a;
  font-weight: 900;
  padding: 10px 10px;
  border-bottom: 1px solid rgba(15,23,42,0.08);
  text-align: left;
}

body.sanpelca-page .mini-price-table td{
  padding: 9px 10px;
  border-bottom: 1px solid rgba(15,23,42,0.06);
}

body.sanpelca-page .mini-price-table tr:last-child td{
  border-bottom: 0;
}

body.sanpelca-page .price-note{
  margin-top: 8px;
  font-size: 12px;
  font-weight: 800;
  color: #475569;
}

/* price button -> strong CTA */
body.sanpelca-page .price-btn-col{
  display:flex;
  justify-content: flex-end;
  align-items: center;
}

body.sanpelca-page .btn-price-list{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width: 100%;
  max-width: 140px;
  padding: 12px 14px;
  border-radius: 999px;
  background: #10b981;
  color:#fff;
  font-weight: 900;
  text-decoration:none;
  box-shadow: 0 12px 26px rgba(16,185,129,0.26);
  transition: transform .15s ease, filter .15s ease;
}
body.sanpelca-page .btn-price-list:hover{
  transform: translateY(-2px);
  filter: brightness(0.95);
}

/* ---------- Responsive ---------- */
@media (max-width: 980px){
  body.sanpelca-page .container{
    grid-template-columns: 1fr;
  }
  body.sanpelca-page .sidebar-left{
    position: static;
  }
  body.sanpelca-page .product-intro-flex{
    grid-template-columns: 1fr;
  }
  body.sanpelca-page .product-details-grid{
    grid-template-columns: 1fr;
  }
  body.sanpelca-page .product-grade-section{
    grid-template-columns: 1fr;
  }
  body.sanpelca-page .lineup-grid{
    grid-template-columns: repeat(3, 1fr);
  }
  body.sanpelca-page .price-row{
    grid-template-columns: 1fr;
  }
  body.sanpelca-page .price-btn-col{
    justify-content: flex-start;
  }
  body.sanpelca-page .btn-price-list{
    max-width: 220px;
  }
}

/* =========================
   EC Layout (main only)
   ========================= */

/* breadcrumb */
.breadcrumb{
  display:flex;
  gap:10px;
  align-items:center;
  font-size: 0.9rem;
  color:#666;
  padding: 16px 0 6px;
}
.breadcrumb a{ color:#333; text-decoration:none; }
.breadcrumb a:hover{ text-decoration:underline; }
.breadcrumb span{ color:#aaa; }

/* main area feel */
.sanpelca-page .main-content{
  padding: 22px 24px 40px;
}
.sanpelca-page .product-page-title{
  margin: 6px 0 16px;
  padding: 16px 18px;
  background:#fff;
  border:1px solid #eee;
  border-radius: 12px;
  box-shadow: 0 6px 18px rgba(0,0,0,.04);
}

/* top two-column */
.ec-top{
  display:grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 18px;
  margin-bottom: 18px;
}
.ec-top-left, .ec-top-right{
  background:#fff;
  border:1px solid #eee;
  border-radius: 14px;
  box-shadow: 0 10px 24px rgba(0,0,0,.05);
  padding: 16px;
}

/* image */
.ec-main-visual{
  border-radius: 12px;
  overflow:hidden;
  border: 1px solid #eee;
}
.ec-main-visual img{
  width:100%;
  height:auto;
  display:block;
}

/* highlight bar */
.ec-highlight{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 12px;
}
.ec-highlight-item{
  border:1px solid #eee;
  border-radius: 12px;
  padding: 12px 12px;
  background: #fafafa;
}
.ec-highlight-title{
  font-weight:700;
  font-size: 0.98rem;
  color:#222;
}
.ec-highlight-sub{
  font-size: 0.88rem;
  color:#666;
  margin-top: 2px;
}

/* summary + cta */
.ec-summary p{ margin-bottom: 10px; line-height: 1.8; }
.ec-cta{
  margin-top: 14px;
  border-top: 1px solid #eee;
  padding-top: 14px;
}
.ec-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height: 44px;
  padding: 0 16px;
  border-radius: 12px;
  text-decoration:none;
  font-weight: 700;
  margin-right: 10px;
  border: 1px solid transparent;
}
.ec-btn-primary{
  background:#FFA500;
  color:#111;
}
.ec-btn-primary:hover{ opacity: .92; }
.ec-btn-ghost{
  background:#fff;
  color:#111;
  border-color:#ddd;
}
.ec-btn-ghost:hover{ background:#f7f7f7; }
.ec-cta-note{
  margin-top: 10px;
  font-size: .88rem;
  color:#666;
}

/* grade compact */
.ec-grade-compact{
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid #eee;
}

/* lineup section as product cards */
.ec-filterbar{
  display:flex;
  justify-content:space-between;
  gap: 12px;
  align-items:center;
  padding: 10px 0 14px;
}
.ec-pill{
  display:inline-flex;
  align-items:center;
  padding: 8px 12px;
  background:#f4f4f4;
  border:1px solid #ececec;
  border-radius: 999px;
  font-size: .86rem;
  color:#444;
  margin-right: 8px;
}
.ec-link{
  color:#111;
  text-decoration:none;
  font-weight:700;
}
.ec-link:hover{ text-decoration:underline; }

/* keep existing lineup-grid but change feel */

.lineup-item{
  background:#fff;
  border:1px solid #eee;
  border-radius: 14px;
  padding: 14px 12px;
  box-shadow: 0 10px 24px rgba(0,0,0,.04);
  transition: transform .12s ease, box-shadow .12s ease;
  cursor: pointer;
}
.lineup-item:hover{
  transform: translateY(-2px);
  box-shadow: 0 16px 28px rgba(0,0,0,.08);
}
.lineup-item .swatch-box{
  border-radius: 10px;
  border: 1px solid rgba(0,0,0,.06);
  height: 54px; /* swatch bigger = 商品っぽい */
}
.lineup-code{
  margin-top: 10px;
  font-weight: 800;
  letter-spacing: .02em;
}

/* details as cards */
.ec-details-cards .detail-column{
  background:#fff;
  border:1px solid #eee;
  border-radius: 14px;
  box-shadow: 0 10px 24px rgba(0,0,0,.04);
  padding: 16px;
}
.ec-details-cards .detail-column h3{
  margin-bottom: 12px;
  font-size: 1.05rem;
}
.ec-details-cards .detail-list li{
  padding: 8px 0;
  border-bottom: 1px dashed #eee;
}
.ec-details-cards .detail-list li:last-child{ border-bottom:none; }

/* accordion (spec) */

.ec-accordion-summary::-webkit-details-marker{ display:none; }
.ec-accordion-body{
  padding: 14px 14px 18px;
}

/* price list = product listing feel */
.price-list-section{
  margin-top: 18px;
}
.price-row{
  background:#fff;
  border:1px solid #eee;
  border-radius: 14px;
  box-shadow: 0 10px 24px rgba(0,0,0,.04);
  padding: 14px;
  margin-bottom: 14px;
  display:grid;
  grid-template-columns: 220px 1fr 140px;
  gap: 14px;
  align-items: center;
}
.price-info-col h3{
  margin: 0 0 10px;
  font-size: 1.15rem;
}
.price-btn-col .btn-price-list{
  display:flex;
  align-items:center;
  justify-content:center;
  height: 44px;
  border-radius: 12px;
  background:#111;
  color:#fff;
  text-decoration:none;
  font-weight: 800;
}
.price-btn-col .btn-price-list:hover{ opacity:.92; }

.mini-price-table{
  width:100%;
  border-collapse: collapse;
  overflow:hidden;
  border-radius: 12px;
  border:1px solid #eee;
}
.mini-price-table th, .mini-price-table td{
  padding: 10px 10px;
  border-bottom:1px solid #eee;
  font-size: .92rem;
}
.mini-price-table tr:last-child td{ border-bottom:none; }
.price-note{
  margin-top: 8px;
  font-size: .85rem;
  color:#666;
}

/* responsive */
@media (max-width: 1100px){
  .ec-top{ grid-template-columns: 1fr; }
  .price-row{ grid-template-columns: 1fr; }
  .price-btn-col{ margin-top: 10px; }
}

/* =========================
   Spec Table (always open)
   ========================= */

.ec-spec-block{
  margin-top: 18px;
  background:#fff;
  border:1px solid #eee;
  border-radius: 14px;
  box-shadow: 0 10px 24px rgba(0,0,0,.04);
  padding: 14px;
}

.ec-section-head{
  padding: 6px 4px 12px;
  border-bottom: 1px solid #eee;
  margin-bottom: 12px;
}
.ec-section-head h3{
  margin: 0 0 6px;
  font-size: 1.05rem;
}
.ec-section-sub{
  margin: 0;
  font-size: .88rem;
  color:#666;
  line-height: 1.6;
}

/* 横スクロールで崩れにくくする（列数が多いので必須） */
.ec-table-wrap{
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 6px;
}

/* spec-table の見た目をEC寄せ */
.spec-table{
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  min-width: 1100px; /* 列が多いのでテーブルが潰れないように */
  border: 1px solid #eee;
  border-radius: 12px;
  overflow: hidden;
}

.spec-table thead th{
  position: sticky;
  top: 0;
  background: #fafafa;
  z-index: 1;
  border-bottom: 1px solid #eee;
}

.spec-table th, .spec-table td{
  padding: 10px 8px;
  border-bottom: 1px solid #f0f0f0;
  font-size: .88rem;
  white-space: nowrap;
}

.spec-table tbody tr:hover{
  background: #fcfcfc;
}

.spec-table tbody tr:last-child td{
  border-bottom: none;
}

/* =========================
   Layout change: Single column
   - nav under header
   - sidebar under hero as horizontal row
   - main stays unchanged (content not edited)
   ========================= */

/* ① container を 2カラム→1カラムへ */
.sanpelca-page .container{
  display: block;           /* grid/flexで2列になっていても単列に */
}

/* ② sidebar を hero の下で横並び化（中身のリストを横に） */
.sanpelca-page .sidebar-left{
  width: 100%;
  margin: 0;
  padding: 14px 16px;
  background: #fff;
  border-bottom: 1px solid #eee;
}

/* 「販売リスト」を横スクロールできる横並びにする */
.sanpelca-page .sidebar-left .maker-price-list{
  display: flex;
  gap: 10px;
  flex-wrap: nowrap;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding: 10px 0 4px;
  margin: 0;
  list-style: none;
}

.sanpelca-page .sidebar-left .maker-price-list li{
  flex: 0 0 auto;
  margin: 0;
}

/* 横並び用のボタン風（既存aを崩さず見た目だけ） */
.sanpelca-page .sidebar-left .maker-price-list a{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border: 1px solid #e9e9e9;
  border-radius: 999px;
  background: #fafafa;
  text-decoration: none;
  white-space: nowrap; /* 改行させない */
}

.sanpelca-page .sidebar-left .maker-price-list a:hover{
  background: #f3f3f3;
}

/* makerヘッダー周りを横並びでも自然に */
.sanpelca-page .sidebar-left .sidebar-maker-list{
  max-width: 100%;
}

.sanpelca-page .sidebar-left .maker-company-name{
  margin: 6px 0 0;
  font-weight: 700;
}

/* ③ main-content は下に続く（中身はそのまま） */


/* ⑤ 念のため：以前の2カラム指定を潰す（containerがflex/gridだった場合） */
.sanpelca-page .sidebar-left,
.sanpelca-page .main-content{
  float: none !important;
}

/* =========================
   FIX: heroの下に sidebar を出す + 1カラム化（mainは触らない）
   ========================= */

/* 1) heroの次に来る container が「浮く/重なる」系を無効化 */
.sanpelca-page .container{
  /* 既存がgrid/flexでもOK。順番を確実にするため縦並びに固定 */
  display: flex !important;
  flex-direction: column !important;

  /* 既存の2カラム用のズレを潰す */
  margin-top: 0 !important;
  position: static !important;
  clear: both !important;
}

/* 2) sidebar を container 内の先頭に固定（heroの下で必ず先に表示） */
.sanpelca-page .sidebar-left{
  order: 1 !important;
  width: 100% !important;

  /* 変な固定・絶対配置・floatがあると hero の下に来ません */
  position: static !important;
  float: none !important;

  /* 見た目：横並びバーっぽく（mainは触らない） */
  margin: 0 !important;
}

/* 3) main は sidebar の下へ（mainの中身/装飾は触らない） */
.sanpelca-page .main-content{
  order: 2 !important;
  width: 100% !important;
  float: none !important;
}

/* 4) sidebar 内のリストを「横並び」にする（カテゴリバー風） */
.sanpelca-page .sidebar-left .maker-price-list{
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 10px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding: 10px 0;
  margin: 0;
  list-style: none;
}

.sanpelca-page .sidebar-left .maker-price-list li{
  flex: 0 0 auto;
  margin: 0;
}

.sanpelca-page .sidebar-left .maker-price-list a{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border: 1px solid #e9e9e9;
  border-radius: 999px;
  background: #fafafa;
  text-decoration: none;
  white-space: nowrap;
}

/* 5) 万一 hero と重なる場合の保険（heroの下に確実に出す） */
.sanpelca-page .hero-slider{
  position: relative;
  z-index: 1;
}
.sanpelca-page .sidebar-left{
  z-index: 2;
}

/* sidebar（販売リスト）を 3行 4/4/3 にする */
.sanpelca-page .sidebar-left .maker-price-list{
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  overflow: visible !important;   /* 横スクロール解除 */
  padding: 14px 0 6px;
  margin: 0;
  list-style: none;
}

.sanpelca-page .sidebar-left .maker-price-list li{
  margin: 0;
}

.sanpelca-page .sidebar-left .maker-price-list a{
  width: 100%;
  justify-content: center;        /* 中央寄せ */
  text-align: center;
  border-radius: 999px;
  padding: 14px 10px;             /* ボタンを少し大きく */
  white-space: normal;            /* 2行表示OK */
  line-height: 1.25;
}

/* 画面が狭い時だけ崩れ防止（任意） */
@media (max-width: 900px){
  .sanpelca-page .sidebar-left .maker-price-list{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* =========================
   販売リストとメインタイトル間の余白を縮める
   ========================= */

/* sidebar下の余白を削る */
.sanpelca-page .sidebar-left{
  margin-bottom: 10px !important;
  padding-bottom: 10px !important;
}

/* containerの上マージンを削る */
.sanpelca-page .container{
  margin-top: 0 !important;
}

/* breadcrumbの上余白を縮める */
.sanpelca-page .breadcrumb{
  margin-top: 10px !important;
}

/* ページタイトルの上余白を縮める */
.sanpelca-page .product-page-title{
  margin-top: 10px !important;
}

/* =========================
   余白が効かない時の強制リセット
   「販売リスト（sidebar）」と「breadcrumb/タイトル」間だけ詰める
   ========================= */

body.sanpelca-page .container{
  /* grid/flex の row-gap があると余白になります */
  row-gap: 0 !important;
  gap: 0 !important;
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* sidebar 自体の下余白 */
body.sanpelca-page .container > .sidebar-left{
  margin-bottom: 0 !important;
  padding-bottom: 8px !important; /* 0でもOK。少しだけ残すなら8px */
}

/* main 自体の上余白（ここが犯人になりやすい） */
body.sanpelca-page .container > .main-content{
  margin-top: 0 !important;
  padding-top: 0 !important; /* ←これで一気に詰まることが多い */
}

/* main の先頭要素（breadcrumb/タイトル）の上余白 */
body.sanpelca-page .main-content > .breadcrumb{
  margin-top: 6px !important;
}

body.sanpelca-page .main-content > .product-page-title{
  margin-top: 6px !important;
}

/* 念のため：main内で最初の要素の “margin collapse” を止める */
body.sanpelca-page .main-content{
  overflow: hidden; /* marginの相殺で余白が増えるのを防ぐ */
}

/* =========================
   余白の最終調整（確実に効かせる）
   ========================= */

/* 販売リスト（sidebar）の下余白を最小化 */
body.sanpelca-page .container > .sidebar-left{
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* main の上余白（padding-top）を潰す */
body.sanpelca-page .container > .main-content{
  padding-top: 6px !important;  /* 0でもOK。少し残すなら6px */
  margin-top: 0 !important;
}

/* breadcrumb/タイトルの上余白も最小化 */
body.sanpelca-page .main-content > .breadcrumb{
  margin-top: 0 !important;
}
body.sanpelca-page .main-content > .product-page-title{
  margin-top: 6px !important;
}

body.sanpelca-page .main-content{
  gap: 8px !important; /* 16→8に */
}

/* 縦並びにした時の “sidebarの高さ固定” を解除 */
body.sanpelca-page .sidebar-left{
  min-height: auto !important;
  height: auto !important;
}

/* もし .sidebar-right も同様に使うなら一応 */
body.sanpelca-page .sidebar-right{
  min-height: auto !important;
  height: auto !important;
}

/* =========================
   SPEC TABLE: ガラッと刷新
   ========================= */

/* ブロック全体をカード化 */
.spec-table-section.ec-spec-block{
  background: #fff;
  border: 1px solid #e8eef3;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(0,0,0,.06);
  padding: 18px 18px 10px;
  margin-top: 10px;
}

/* 見出しをスッキリ */
.spec-table-section .ec-section-head{
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid #eef2f6;
  padding-bottom: 10px;
  margin-bottom: 14px;
}
.spec-table-section .ec-section-head h3{
  margin: 0;
  font-size: 1.1rem;
}
.spec-table-section .ec-section-sub{
  margin: 0;
  color: #667085;
  font-size: .9rem;
}

/* テーブルを“横スクロール + 固定ヘッダー”に */
.ec-table-wrap{
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 6px;
}

/* テーブル本体：カード風 */
.spec-table{
  width: 100%;
  min-width: 1100px; /* 列が多いので最低幅を確保 */
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
  border: 1px solid #eef2f6;
  border-radius: 14px;
  overflow: hidden;
}

/* ヘッダーを固定（スクロールしても見える） */
.spec-table thead th{
  position: sticky;
  top: 0;
  z-index: 2;
  background: linear-gradient(180deg, #f6fbff 0%, #eef7ff 100%);
  color: #1f2a37;
  font-weight: 700;
  border-bottom: 1px solid #e5eef7;
}

/* セル共通 */
.spec-table th,
.spec-table td{
  padding: 10px 10px;
  border-right: 1px solid #eef2f6;
  border-bottom: 1px solid #eef2f6;
  text-align: center;
  white-space: nowrap;
  font-size: .92rem;
}
.spec-table tr > *:last-child{
  border-right: none;
}
.spec-table tbody tr:last-child td{
  border-bottom: none;
}

/* 行の縞 */
.spec-table tbody tr:nth-child(even){
  background: #fbfdff;
}

/* グレード列を強調（左固定） */
.spec-table .spec-cell-grade{
  position: sticky;
  left: 0;
  z-index: 1;
  background: #fff;
  font-weight: 800;
  border-right: 1px solid #e6edf5;
}
.spec-table tbody tr:nth-child(even) .spec-cell-grade{
  background: #fbfdff;
}

/* 物性（密度/圧縮）を読みやすく */
.spec-table .th-property{
  color: #0b4a6e;
}

/* 色の○△を “チップ”っぽく見せる */
.spec-table tbody td{
  color: #111827;
}


/* ============ スマホ：1行=カード化 ============ */
@media (max-width: 900px){
  .spec-table{
    min-width: 0;
    border: none;
    border-radius: 0;
  }

  .spec-table thead{
    display: none; /* ヘッダーは非表示 */
  }

  .spec-table,
  .spec-table tbody,
  .spec-table tr,
  .spec-table td{
    display: block;
    width: 100%;
  }

  /* 1行をカードに */
  .spec-table tbody tr{
    background: #fff;
    border: 1px solid #e8eef3;
    border-radius: 14px;
    padding: 10px 10px 6px;
    margin: 0 0 12px;
    box-shadow: 0 6px 18px rgba(0,0,0,.05);
  }

  .spec-table tbody tr:nth-child(even){
    background: #fff;
  }

  /* グレードをカードのタイトルに */
  .spec-table .spec-cell-grade{
    position: static;
    background: transparent;
    border: none;
    padding: 6px 6px 10px;
    font-size: 1.05rem;
  }

  /* 以降のセルを “2カラムのラベル風” に */
  .spec-table td{
    border: none;
    border-top: 1px dashed #eef2f6;
    padding: 8px 6px;
    text-align: left;
    white-space: normal;
    font-weight: 500;
  }

  /* 先頭(=グレード)の次の2つ（密度/圧縮）を目立たせる */
  .spec-table tbody tr td:nth-child(2),
  .spec-table tbody tr td:nth-child(3){
    display: inline-block;
    width: calc(50% - 6px);
    border-top: none;
    background: #f6fbff;
    border: 1px solid #e5eef7;
    border-radius: 12px;
    margin: 6px 3px 6px 3px;
    padding: 10px;
    font-weight: 700;
  }

  /* 最大寸法・備考を下にまとめる（最後2つ想定） */
  .spec-table tbody tr td:nth-last-child(2),
  .spec-table tbody tr td:last-child{
    background: #fbfcfe;
    border: 1px solid #eef2f6;
    border-radius: 12px;
    margin-top: 8px;
    padding: 10px;
  }
}

/* =========================
   SPEC TABLE: レイアウト刷新（修正版：空ルールなし）
   ========================= */

/* ブロック全体をカード化 */
.spec-table-section.ec-spec-block{
  background: #fff;
  border: 1px solid #e8eef3;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(0,0,0,.06);
  padding: 18px 18px 10px;
  margin-top: 10px;
}

/* 見出し */
.spec-table-section .ec-section-head{
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid #eef2f6;
  padding-bottom: 10px;
  margin-bottom: 14px;
}
.spec-table-section .ec-section-head h3{
  margin: 0;
  font-size: 1.1rem;
}
.spec-table-section .ec-section-sub{
  margin: 0;
  color: #667085;
  font-size: .9rem;
}

/* 横スクロール */
.ec-table-wrap{
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 6px;
}

/* テーブル本体 */
.spec-table{
  width: 100%;
  min-width: 1100px;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
  border: 1px solid #eef2f6;
  border-radius: 14px;
  overflow: hidden;
}

/* 固定ヘッダー */
.spec-table thead th{
  position: sticky;
  top: 0;
  z-index: 2;
  background: linear-gradient(180deg, #f6fbff 0%, #eef7ff 100%);
  color: #1f2a37;
  font-weight: 700;
  border-bottom: 1px solid #e5eef7;
}

/* セル共通 */
.spec-table th,
.spec-table td{
  padding: 10px 10px;
  border-right: 1px solid #eef2f6;
  border-bottom: 1px solid #eef2f6;
  text-align: center;
  white-space: nowrap;
  font-size: .92rem;
}
.spec-table tr > *:last-child{
  border-right: none;
}
.spec-table tbody tr:last-child td{
  border-bottom: none;
}

/* 行の縞 */
.spec-table tbody tr:nth-child(even){
  background: #fbfdff;
}

/* グレード列を左固定 */
.spec-table .spec-cell-grade{
  position: sticky;
  left: 0;
  z-index: 1;
  background: #fff;
  font-weight: 800;
  border-right: 1px solid #e6edf5;
}
.spec-table tbody tr:nth-child(even) .spec-cell-grade{
  background: #fbfdff;
}

/* 物性列の見出し色 */
.spec-table .th-property{
  color: #0b4a6e;
}

/* 空セルは薄く */
.spec-table td:empty{
  background: rgba(2, 6, 23, .02);
}

/* =========================
   スマホ：1行=カード化
   ========================= */
@media (max-width: 900px){
  .spec-table{
    min-width: 0;
    border: none;
    border-radius: 0;
  }

  .spec-table thead{
    display: none;
  }

  .spec-table,
  .spec-table tbody,
  .spec-table tr,
  .spec-table td{
    display: block;
    width: 100%;
  }

  .spec-table tbody tr{
    background: #fff;
    border: 1px solid #e8eef3;
    border-radius: 14px;
    padding: 10px 10px 6px;
    margin: 0 0 12px;
    box-shadow: 0 6px 18px rgba(0,0,0,.05);
  }

  /* グレードをカードタイトルに */
  .spec-table .spec-cell-grade{
    position: static;
    background: transparent;
    border: none;
    padding: 6px 6px 10px;
    font-size: 1.05rem;
    white-space: normal;
    text-align: left;
  }

  /* 以降のセル */
  .spec-table td{
    border: none;
    border-top: 1px dashed #eef2f6;
    padding: 8px 6px;
    text-align: left;
    white-space: normal;
    font-weight: 500;
  }

  /* 密度/圧縮応力（2列目・3列目）を強調カード化 */
  .spec-table tbody tr td:nth-child(2),
  .spec-table tbody tr td:nth-child(3){
    display: inline-block;
    width: calc(50% - 6px);
    border-top: none;
    background: #f6fbff;
    border: 1px solid #e5eef7;
    border-radius: 12px;
    margin: 6px 3px 6px 3px;
    padding: 10px;
    font-weight: 700;
  }

  /* 最大寸法（最後から2番目）と備考（最後） */
  .spec-table tbody tr td:nth-last-child(2),
  .spec-table tbody tr td:last-child{
    background: #fbfcfe;
    border: 1px solid #eef2f6;
    border-radius: 12px;
    margin-top: 8px;
    padding: 10px;
  }
}

/* ✅強制上書き（確実に変える） */
body.sanpelca-page .spec-table-section.ec-spec-block{
  background:#fff !important;
  border:1px solid #e8eef3 !important;
  border-radius:16px !important;
  box-shadow:0 8px 24px rgba(0,0,0,.06) !important;
  padding:18px 18px 10px !important;
  margin-top:10px !important;
}

body.sanpelca-page .ec-table-wrap{
  overflow-x:auto !important;
  -webkit-overflow-scrolling:touch !important;
  padding-bottom:6px !important;
}

body.sanpelca-page .spec-table{
  width:100% !important;
  min-width:1100px !important;
  border-collapse:separate !important;
  border-spacing:0 !important;
  background:#fff !important;
  border:1px solid #eef2f6 !important;
  border-radius:14px !important;
  overflow:hidden !important;
}

body.sanpelca-page .spec-table th,
body.sanpelca-page .spec-table td{
  padding:10px 10px !important;
  border-right:1px solid #eef2f6 !important;
  border-bottom:1px solid #eef2f6 !important;
  text-align:center !important;
  white-space:nowrap !important;
  font-size:.92rem !important;
}

body.sanpelca-page .spec-table thead th{
  background:linear-gradient(180deg,#f6fbff 0%,#eef7ff 100%) !important;
  font-weight:700 !important;
  border-bottom:1px solid #e5eef7 !important;
}

body.sanpelca-page .spec-table tbody tr:nth-child(even){
  background:#fbfdff !important;
}

body.sanpelca-page .spec-table td:empty{
  background:rgba(2,6,23,.02) !important;
}

/* 左のグレード固定 */
body.sanpelca-page .spec-table .spec-cell-grade{
  position:sticky !important;
  left:0 !important;
  z-index:1 !important;
  background:#fff !important;
  font-weight:800 !important;
  border-right:1px solid #e6edf5 !important;
}

/* 偶数行の固定セル背景 */
body.sanpelca-page .spec-table tbody tr:nth-child(even) .spec-cell-grade{
  background:#fbfdff !important;
}

/* ===========================
   SPEC TABLE を “別物” に見せる上書き
   =========================== */

/* 1) inline style を無効化して統一（background/widthなど） */
body.sanpelca-page .spec-table th[style],
body.sanpelca-page .spec-table td[style]{
  background: transparent !important;
  width: auto !important;
}

/* 2) ヘッダーを完全に新デザイン化（縦文字も解除） */
body.sanpelca-page .spec-table thead th{
  background: #0f172a !important;
  color: #fff !important;
  border-color: rgba(255,255,255,.12) !important;
  font-weight: 700 !important;
}

body.sanpelca-page .spec-table .col-vertical{
  /* 縦書き解除 */
  writing-mode: horizontal-tb !important;
  transform: none !important;
  white-space: nowrap !important;
  font-size: .78rem !important;
  letter-spacing: .02em;
  padding: 10px 6px !important;
}

/* 3) “色の列” を細くして、○/△をバッジ化（ガラっと変わる） */
body.sanpelca-page .spec-table th.col-vertical,
body.sanpelca-page .spec-table td:nth-child(n+4):nth-child(-n+20){
  width: 44px !important;           /* 色列をコンパクト化 */
  min-width: 44px !important;
  padding: 8px 4px !important;
}

body.sanpelca-page .spec-table td{
  background: #fff !important;
}

/* ○/△ が入ってるセルを “丸バッジ” に見せる */
body.sanpelca-page .spec-table td{
  font-variant-numeric: tabular-nums;
}

body.sanpelca-page .spec-table td{
  position: relative;
}

body.sanpelca-page .spec-table td{
  /* 文字の主張を少し落とす */
  color: #0f172a !important;
}

body.sanpelca-page .spec-table td{
  font-size: .90rem !important;
}

/* ○だけ */


/* ○/△が単体で入ってるときの見た目（Chrome/Edgeで効きやすい） */
body.sanpelca-page .spec-table td{
  text-align: center !important;
}

body.sanpelca-page .spec-table td{
  line-height: 1.1 !important;
}

/* “○” */

body.sanpelca-page .spec-table td{
  font-weight: 600 !important;
}

/* 4) 物性列・寸法列を読みやすく（左寄せで表っぽさを減らす） */
body.sanpelca-page .spec-table td:nth-child(2),
body.sanpelca-page .spec-table td:nth-child(3),
body.sanpelca-page .spec-table td:nth-child(21),
body.sanpelca-page .spec-table td:nth-child(22){
  text-align: left !important;
  padding-left: 12px !important;
  white-space: nowrap !important;
}

/* 5) 行をカード風に見せる（枠・影・丸み） */
body.sanpelca-page .spec-table{
  border: none !important;
  border-collapse: separate !important;
  border-spacing: 0 10px !important;   /* 行の間隔＝カード感 */
  background: transparent !important;
}

body.sanpelca-page .spec-table tbody tr{
  box-shadow: 0 8px 18px rgba(2,6,23,.06) !important;
}

body.sanpelca-page .spec-table tbody td{
  border-top: 1px solid #eef2f6 !important;
  border-bottom: 1px solid #eef2f6 !important;
}

body.sanpelca-page .spec-table tbody td:first-child{
  border-left: 1px solid #eef2f6 !important;
  border-top-left-radius: 14px !important;
  border-bottom-left-radius: 14px !important;
}

body.sanpelca-page .spec-table tbody td:last-child{
  border-right: 1px solid #eef2f6 !important;
  border-top-right-radius: 14px !important;
  border-bottom-right-radius: 14px !important;
}

/* 6) 空セルは完全に透明に（“表のマス目感”を消す） */
body.sanpelca-page .spec-table td:empty{
  background: transparent !important;
  border-color: transparent !important;
}

/* ===========================
   spec-table を “別物デザイン” に
   =========================== */

body.sanpelca-page .spec-table.spec-table-v2{
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
  border: 1px solid #e9edf3;
  border-radius: 16px;
  overflow: hidden;
}

/* ヘッダー */
body.sanpelca-page .spec-table.spec-table-v2 thead th{
  position: sticky;
  top: 0;
  background: linear-gradient(180deg, #f6fbff, #eef6ff);
  border-bottom: 1px solid #e4ebf5;
  padding: 14px 12px;
  text-align: left;
  font-weight: 800;
  font-size: .95rem;
  z-index: 1;
}

body.sanpelca-page .spec-table.spec-table-v2 .th-unit{
  font-size: .78rem;
  font-weight: 600;
  opacity: .65;
}

/* 行 */
body.sanpelca-page .spec-table.spec-table-v2 tbody td{
  padding: 14px 12px;
  border-bottom: 1px solid #eef2f7;
  vertical-align: top;
  font-size: .95rem;
}

body.sanpelca-page .spec-table.spec-table-v2 tbody tr:last-child td{
  border-bottom: none;
}

/* 1列目（グレード）を強調 */
body.sanpelca-page .spec-table.spec-table-v2 .spec-cell-grade{
  font-weight: 900;
  letter-spacing: .02em;
  white-space: nowrap;
}

/* カラー表示（チップ） */
body.sanpelca-page .spec-color-chips{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

body.sanpelca-page .color-chip{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid #e6eaf0;
  background: #f8fafc;
  font-size: .86rem;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

/* ○（標準） */
body.sanpelca-page .color-chip.is-std{
  background: rgba(34,197,94,.10);
  border-color: rgba(34,197,94,.25);
}

/* △（受注） */
body.sanpelca-page .color-chip.is-made{
  background: rgba(245,158,11,.12);
  border-color: rgba(245,158,11,.28);
}

/* 寸法（複数行） */
body.sanpelca-page .spec-dims{
  display: grid;
  gap: 6px;
  font-weight: 700;
}

/* レジェンド */
body.sanpelca-page .spec-legend{
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 10px;
}

body.sanpelca-page .legend-item{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: .9rem;
  opacity: .9;
}

body.sanpelca-page .legend-chip{
  width: 30px;
  height: 22px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  border: 1px solid #e6eaf0;
  background: #f8fafc;
}

body.sanpelca-page .legend-chip.is-std{
  background: rgba(34,197,94,.10);
  border-color: rgba(34,197,94,.25);
}

body.sanpelca-page .legend-chip.is-made{
  background: rgba(245,158,11,.12);
  border-color: rgba(245,158,11,.28);
}

/* スマホ調整 */
@media (max-width: 900px){
  body.sanpelca-page .spec-table.spec-table-v2 thead{
    display: none;
  }
  body.sanpelca-page .spec-table.spec-table-v2 tbody tr{
    display: grid;
    gap: 10px;
    padding: 14px;
    border-bottom: 1px solid #eef2f7;
  }
  body.sanpelca-page .spec-table.spec-table-v2 tbody td{
    border-bottom: none;
    padding: 0;
  }
  body.sanpelca-page .spec-table.spec-table-v2 tbody td::before{
    content: attr(data-label);
    display: block;
    font-size: .78rem;
    font-weight: 800;
    opacity: .6;
    margin-bottom: 4px;
  }
}

/* ------------- 横スクロール絶対禁止 ------------- */
body.sanpelca-page .ec-table-wrap{
  overflow-x: hidden !important;
}

/* ------------- 新デザイン（黒化対策も含む） ------------- */
body.sanpelca-page .spec-table.spec-table-v2{
  width: 100% !important;
  table-layout: fixed;                 /* これで幅が暴れにくい */
  border-collapse: separate;
  border-spacing: 0;
  background: #fff !important;
  color: #111 !important;
  border: 1px solid #e9edf3;
  border-radius: 16px;
  overflow: hidden;
}

body.sanpelca-page .spec-table.spec-table-v2 *{
  color: inherit;
}

body.sanpelca-page .spec-table.spec-table-v2 thead th{
  background: linear-gradient(180deg, #f6fbff, #eef6ff) !important;
  border-bottom: 1px solid #e4ebf5;
  padding: 14px 12px;
  text-align: left;
  font-weight: 800;
  font-size: .95rem;
}

body.sanpelca-page .spec-table.spec-table-v2 .th-unit{
  font-size: .78rem;
  font-weight: 600;
  opacity: .65;
}

body.sanpelca-page .spec-table.spec-table-v2 tbody td{
  padding: 14px 12px;
  border-bottom: 1px solid #eef2f7;
  vertical-align: top;
  font-size: .95rem;
  word-break: break-word;              /* 長文で横に伸びない */
}

body.sanpelca-page .spec-table.spec-table-v2 tbody tr:last-child td{
  border-bottom: none;
}

body.sanpelca-page .spec-table.spec-table-v2 .spec-cell-grade{
  font-weight: 900;
  white-space: nowrap;
}

/* カラーチップ */
body.sanpelca-page .spec-color-chips{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

body.sanpelca-page .color-chip{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid #e6eaf0;
  background: #f8fafc;
  font-size: .86rem;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

body.sanpelca-page .color-chip.is-std{
  background: rgba(34,197,94,.10);
  border-color: rgba(34,197,94,.25);
}

body.sanpelca-page .color-chip.is-made{
  background: rgba(245,158,11,.12);
  border-color: rgba(245,158,11,.28);
}

/* 寸法（複数行） */
body.sanpelca-page .spec-dims{
  display: grid;
  gap: 6px;
  font-weight: 700;
}

/* レジェンド */
body.sanpelca-page .spec-legend{
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 10px;
}

body.sanpelca-page .legend-item{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: .9rem;
  opacity: .9;
}

body.sanpelca-page .legend-chip{
  width: 30px;
  height: 22px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  border: 1px solid #e6eaf0;
  background: #f8fafc;
}

body.sanpelca-page .legend-chip.is-std{
  background: rgba(34,197,94,.10);
  border-color: rgba(34,197,94,.25);
}

body.sanpelca-page .legend-chip.is-made{
  background: rgba(245,158,11,.12);
  border-color: rgba(245,158,11,.28);
}

/* ------------- スマホは“完全カード化”して横スクロール無し ------------- */
@media (max-width: 900px){
  body.sanpelca-page .spec-table.spec-table-v2 thead{
    display: none;
  }

  body.sanpelca-page .spec-table.spec-table-v2{
    border-radius: 16px;
  }

  body.sanpelca-page .spec-table.spec-table-v2 tbody tr{
    display: grid;
    gap: 10px;
    padding: 14px;
    border-bottom: 1px solid #eef2f7;
  }

  body.sanpelca-page .spec-table.spec-table-v2 tbody td{
    border-bottom: none;
    padding: 0;
  }

  body.sanpelca-page .spec-table.spec-table-v2 tbody td::before{
    content: attr(data-label);
    display: block;
    font-size: .78rem;
    font-weight: 800;
    opacity: .6;
    margin-bottom: 4px;
  }
}

/* ===========================
   SPEC TABLE 超コンパクト版
   =========================== */

body.sanpelca-page .spec-table.spec-table-v2{
  font-size: 0.82rem;             /* 全体縮小 */
  border-radius: 12px;
}

/* ヘッダー */
body.sanpelca-page .spec-table.spec-table-v2 thead th{
  padding: 8px 8px;               /* 余白削減 */
  font-size: 0.80rem;
  line-height: 1.2;
}

/* セル */
body.sanpelca-page .spec-table.spec-table-v2 tbody td{
  padding: 8px 8px;               /* 縦横詰める */
  font-size: 0.82rem;
  line-height: 1.2;
}

/* グレード強調を少しだけ控えめに */
body.sanpelca-page .spec-table.spec-table-v2 .spec-cell-grade{
  font-weight: 700;
  font-size: 0.85rem;
}

/* カラーチップ超小型化 */
body.sanpelca-page .color-chip{
  padding: 3px 8px;
  font-size: 0.72rem;
  border-radius: 999px;
}

/* チップ間隔を詰める */
body.sanpelca-page .spec-color-chips{
  gap: 4px;
}

/* 寸法も詰める */
body.sanpelca-page .spec-dims{
  gap: 3px;
  font-size: 0.80rem;
}

/* レジェンドもコンパクト */
body.sanpelca-page .spec-legend{
  margin-top: 6px;
  gap: 8px;
}

body.sanpelca-page .legend-item{
  font-size: 0.75rem;
}

body.sanpelca-page .legend-chip{
  width: 22px;
  height: 16px;
  font-size: 0.65rem;
}

/* 行の高さをさらに削る */
body.sanpelca-page .spec-table.spec-table-v2 tbody tr{
  height: auto;
}

/* スマホもさらに詰める */
@media (max-width: 900px){
  body.sanpelca-page .spec-table.spec-table-v2 tbody tr{
    padding: 8px;
    gap: 6px;
  }

  body.sanpelca-page .spec-table.spec-table-v2 tbody td::before{
    font-size: 0.65rem;
    margin-bottom: 2px;
  }
}

/* ===========================
   列幅バランス再調整
   =========================== */

body.sanpelca-page .spec-table.spec-table-v2{
  table-layout: fixed;   /* 幅固定で制御しやすく */
}

/* ---- 左3列を細く ---- */
body.sanpelca-page .spec-table.spec-table-v2 th:nth-child(1),
body.sanpelca-page .spec-table.spec-table-v2 td:nth-child(1){
  width: 90px;
}

body.sanpelca-page .spec-table.spec-table-v2 th:nth-child(2),
body.sanpelca-page .spec-table.spec-table-v2 td:nth-child(2){
  width: 80px;
}

body.sanpelca-page .spec-table.spec-table-v2 th:nth-child(3),
body.sanpelca-page .spec-table.spec-table-v2 td:nth-child(3){
  width: 90px;
}

/* ---- 4〜6列を広く ---- */
body.sanpelca-page .spec-table.spec-table-v2 th:nth-child(4),
body.sanpelca-page .spec-table.spec-table-v2 td:nth-child(4){
  width: 30%;
}

body.sanpelca-page .spec-table.spec-table-v2 th:nth-child(5),
body.sanpelca-page .spec-table.spec-table-v2 td:nth-child(5){
  width: 22%;
}

body.sanpelca-page .spec-table.spec-table-v2 th:nth-child(6),
body.sanpelca-page .spec-table.spec-table-v2 td:nth-child(6){
  width: 23%;
}

/* ===========================
   行間を完全に削除
   =========================== */

/* 以前のカード風余白を完全除去 */
body.sanpelca-page .spec-table.spec-table-v2{
  border-collapse: collapse !important;
  border-spacing: 0 !important;
}

body.sanpelca-page .spec-table.spec-table-v2 tbody tr{
  margin: 0 !important;
}

body.sanpelca-page .spec-table.spec-table-v2 tbody td{
  border-bottom: 1px solid #e9edf3;
}

/* 最終行は下線なし */
body.sanpelca-page .spec-table.spec-table-v2 tbody tr:last-child td{
  border-bottom: none;
}

/* ===== 文字色を濃くする ===== */

body.sanpelca-page .spec-table.spec-table-v2{
  color: #1a1a1a !important;   /* 全体を濃い黒に */
}

/* グレード列をさらに強調 */
body.sanpelca-page .spec-table.spec-table-v2 .spec-cell-grade{
  color: #000 !important;
  font-weight: 800;
}

/* 数値列も濃く */
body.sanpelca-page .spec-table.spec-table-v2 tbody td:nth-child(2),
body.sanpelca-page .spec-table.spec-table-v2 tbody td:nth-child(3){
  color: #111 !important;
  font-weight: 600;
}

/* 備考はやや落ち着いた濃さ */
body.sanpelca-page .spec-table.spec-table-v2 tbody td:nth-child(6){
  color: #333 !important;
}

/* ===== 表の文字を強制的に濃くする（最終兵器） ===== */
body.sanpelca-page .spec-table-section,
body.sanpelca-page .ec-table-wrap,
body.sanpelca-page table.spec-table{
  opacity: 1 !important;
  filter: none !important;
  color: #111 !important;
}

/* th/td を直接叩く（ここが一番効く） */
body.sanpelca-page table.spec-table th,
body.sanpelca-page table.spec-table td{
  color: #111 !important;
  opacity: 1 !important;
}

/* グレード列（L-600等）をさらに濃く */
body.sanpelca-page table.spec-table td.spec-cell-grade{
  color: #000 !important;
  font-weight: 800 !important;
}

/* 見出し（ヘッダー行）の文字も濃く */
body.sanpelca-page table.spec-table thead th{
  color: #111 !important;
  font-weight: 700 !important;
}

/* ===========================
   ページ全体の角丸を削除
   =========================== */

body.sanpelca-page *{
  border-radius: 0 !important;
}

/* 影も不要なら消す */
body.sanpelca-page *{
  box-shadow: none !important;
}

/* ===========================
   price-list を2列にする
   =========================== */

body.sanpelca-page #price-list{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

/* スマホは1列に戻す */
@media (max-width: 768px){
  body.sanpelca-page #price-list{
    grid-template-columns: 1fr;
  }
}

/* ===========================
   price-list を中央で2分割
   =========================== */

body.sanpelca-page #price-list{
  display: grid;
  grid-template-columns: 1fr 1fr;   /* 真ん中で50%ずつ */
  gap: 24px;
}

/* 子要素のはみ出し防止 */
body.sanpelca-page #price-list > *{
  min-width: 0;         /* これ超重要（はみ出し防止） */
  width: 100%;
  box-sizing: border-box;
}

/* 画面が狭い場合は1列 */
@media (max-width: 900px){
  body.sanpelca-page #price-list{
    grid-template-columns: 1fr;
  }
}

/* ===========================
   価格リスト：2列 + はみ出し防止 + ボタン復活
   =========================== */

/* 2列（白ボックス内に収める） */
body.sanpelca-page #price-list{
  width: 100%;
  max-width: 100%;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)); /* 重要：minmaxで切れ防止 */
  gap: 18px;
  overflow: visible;
  box-sizing: border-box;
}

/* グリッドの各カード（price-row）がはみ出さないための必須 */
body.sanpelca-page #price-list > .price-row{
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
}

/* price-row 内のレイアウトを「縦積み」にしてボタンが消えないようにする */
body.sanpelca-page #price-list .price-row{
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 10px;
}

/* 既存の横カラム指定が残っていても崩れないように */
body.sanpelca-page #price-list .price-info-col,
body.sanpelca-page #price-list .price-table-col,
body.sanpelca-page #price-list .price-btn-col{
  width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box;
}

/* ボタンを必ず表示 */
body.sanpelca-page #price-list .price-btn-col{
  display: block !important;
}

body.sanpelca-page #price-list .btn-price-list{
  display: block !important;
  width: 100%;
  text-align: center;
}

/* 表が原因で横にはみ出す対策 */
body.sanpelca-page #price-list .mini-price-table{
  width: 100%;
  max-width: 100%;
  table-layout: fixed; /* 文字で伸びにくくする */
}

/* スマホは1列 */
@media (max-width: 900px){
  body.sanpelca-page #price-list{
    grid-template-columns: 1fr;
  }
}

/* ===========================
   価格表に罫線を入れる
   =========================== */

body.sanpelca-page .mini-price-table{
  border-collapse: collapse;
  width: 100%;
  font-size: 0.85rem;
}

body.sanpelca-page .mini-price-table th,
body.sanpelca-page .mini-price-table td{
  border: 1px solid #dcdcdc;
  padding: 6px 8px;
}

body.sanpelca-page .mini-price-table th{
  background: #f3f3f3;
  font-weight: 600;
  text-align: center;
}

body.sanpelca-page .mini-price-table td{
  background: #fff;
}

/* ===========================
   price-row をカード化
   =========================== */

body.sanpelca-page #price-list .price-row{
  border: 1px solid #e2e2e2;
  background: #ffffff;
  padding: 16px;
  box-sizing: border-box;
}

/* ホバー時 少し強調 */
body.sanpelca-page #price-list .price-row:hover{
  border-color: #c8c8c8;
}

body.sanpelca-page .mini-price-table tr:nth-child(even) td{
  background: #fafafa;
}

/* ===== ナビ基本 ===== */
.main-menu{
  background:#0f2f66;
  position: relative;
}

.main-menu ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  justify-content:center;
}

.main-menu li{
  border-right:1px solid rgba(255,255,255,0.15);
}

.main-menu li:first-child{
  border-left:1px solid rgba(255,255,255,0.15);
}

.main-menu a{
  display:block;
  padding:14px 20px;
  color:#fff;
  font-weight:600;
  font-size:14px;
}

.main-menu a:hover{
  background:#1f4a91;
}



/* ===== スマホ表示 ===== */
@media (max-width: 768px){

  .main-menu{
    padding:10px 0;
  }

  .menu-toggle{
    display:flex;
  }

  .main-menu ul{
    display:none;
    flex-direction:column;
    width:100%;
    background:#0f2f66;
    margin-top:10px;
    border-top:1px solid rgba(255,255,255,0.15);
  }

  .main-menu ul.open{
    display:flex;
  }

  .main-menu li{
    border:none;
    border-bottom:1px solid rgba(255,255,255,0.1);
  }

  .main-menu a{
    padding:14px 16px;
    font-size:15px;
  }

@media (max-width: 768px){

  .contact-cta{
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 14px !important;
    padding: 18px 16px !important;
  }

  .contact-cta__icon{
    width: 72px !important;
    height: 72px !important;
    font-size: 32px !important;
    border-radius: 16px !important;
    flex-shrink: 0;
  }

  .contact-cta__body{
    width: 100% !important;
    min-width: 0 !important;
  }

  .contact-cta__title{
    font-size: 22px !important;
    line-height: 1.4 !important;
    margin-bottom: 8px !important;
    writing-mode: horizontal-tb !important;
    word-break: keep-all !important;
  }

  .contact-cta__desc{
    font-size: 15px !important;
    line-height: 1.7 !important;
    writing-mode: horizontal-tb !important;
    word-break: normal !important;
  }

  .contact-cta__hint{
    font-size: 14px !important;
    line-height: 1.6 !important;
    margin-top: 8px !important;
    writing-mode: horizontal-tb !important;
    word-break: keep-all !important;
  }

  .contact-cta__action{
    width: 100% !important;
    display: flex !important;
    justify-content: flex-start !important;
    align-items: center !important;
    gap: 12px !important;
    margin-top: 4px !important;
  }

  .contact-cta__btn{
    padding: 12px 18px !important;
    font-size: 14px !important;
    white-space: nowrap !important;
  }

  .contact-cta__arrow{
    width: 40px !important;
    height: 40px !important;
    font-size: 18px !important;
    flex-shrink: 0;
  }
}

@media (max-width: 768px){

  .contact-cta-grid{
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    padding: 0 12px !important;
    margin: 18px auto 24px !important;
  }

  .contact-cta{
    display: grid !important;
    grid-template-columns: 72px 1fr !important;
    grid-template-areas:
      "icon body"
      "action action";
    align-items: start !important;
    gap: 14px 14px !important;
    padding: 18px 16px !important;
    border-radius: 18px !important;
    min-height: auto !important;
  }

  .contact-cta__icon{
    grid-area: icon !important;
    width: 72px !important;
    height: 72px !important;
    font-size: 32px !important;
    border-radius: 16px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: none !important;
  }

  .contact-cta__body{
    grid-area: body !important;
    width: 100% !important;
    min-width: 0 !important;
    display: block !important;
  }

  .contact-cta__title,
  .contact-cta__desc,
  .contact-cta__hint{
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    white-space: normal !important;
    word-break: keep-all !important;
    overflow-wrap: break-word !important;
  }

  .contact-cta__title{
    font-size: 22px !important;
    line-height: 1.4 !important;
    margin: 0 0 8px !important;
  }

  .contact-cta__desc{
    font-size: 15px !important;
    line-height: 1.7 !important;
    margin: 0 !important;
  }

  .contact-cta__hint{
    font-size: 14px !important;
    line-height: 1.6 !important;
    margin: 8px 0 0 !important;
  }

  .contact-cta__action{
    grid-area: action !important;
    width: 100% !important;
    display: flex !important;
    justify-content: flex-start !important;
    align-items: center !important;
    gap: 12px !important;
    margin: 0 !important;
  }

  .contact-cta__btn{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 12px 18px !important;
    font-size: 14px !important;
    white-space: nowrap !important;
  }

  .contact-cta__arrow{
    width: 40px !important;
    height: 40px !important;
    font-size: 18px !important;
    flex: none !important;
  }
}
@media (max-width: 768px){
  .contact-cta,
  .contact-cta *{
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    transform: none;
  }
}
/* ===== iPhoneで文字が縦並びになる崩れを防ぐ ===== */
html{
  -webkit-text-size-adjust: 100%;
}

body,
main,
section,
div,
p,
h1,
h2,
h3,
h4,
h5,
h6,
a,
span,
li,
dt,
dd,
label,
input,
textarea,
button{
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
}

/* 日本語が1文字ずつ落ちるのを防ぐ */
p,
h1,
h2,
h3,
h4,
h5,
h6,
a,
span,
li,
label{
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: anywhere !important;
  line-break: strict;
}
}
/* ===========================
   スマホで横幅いっぱいにする
   =========================== */
@media (max-width: 768px){

  html, body{
    margin: 0;
    padding: 0;
    width: 100%;
    overflow-x: hidden;
  }

  body.sanpelca-page{
    margin: 0;
    padding: 0;
  }

  body.sanpelca-page .container{
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
  }

  body.sanpelca-page .main-content{
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 12px 0 24px;
    box-sizing: border-box;
  }

  body.sanpelca-page .sidebar-left{
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 10px 0;
    box-sizing: border-box;
  }

  /* main内の各セクションを横幅いっぱい寄りに */
  body.sanpelca-page .breadcrumb,
  body.sanpelca-page .product-page-title,
  body.sanpelca-page .ec-top,
  body.sanpelca-page .lineup-section,
  body.sanpelca-page .product-details-grid,
  body.sanpelca-page .spec-table-section,
  body.sanpelca-page .price-list-section{
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    box-sizing: border-box;
  }

  /* 必要最小限の内側余白だけ残す */
  body.sanpelca-page .breadcrumb,
  body.sanpelca-page .product-page-title,
  body.sanpelca-page .ec-top,
  body.sanpelca-page .lineup-section,
  body.sanpelca-page .product-details-grid,
  body.sanpelca-page .spec-table-section,
  body.sanpelca-page .price-list-section{
    padding-left: 12px;
    padding-right: 12px;
  }

  /* 画像・カード類がはみ出さないように */
  body.sanpelca-page img{
    max-width: 100%;
    height: auto;
    display: block;
  }
}

/* ===========================
   スペック表 スマホ最適化
   =========================== */
@media (max-width: 768px){

  /* セクション全体 */
  body.sanpelca-page .spec-table-section.ec-spec-block{
    padding: 14px 12px !important;
  }

  /* タイトル部分 */
  body.sanpelca-page .spec-table-section .ec-section-head{
    display: block !important;
    padding-bottom: 10px;
    margin-bottom: 12px;
  }

  body.sanpelca-page .spec-table-section .ec-section-head h3{
    font-size: 1.15rem !important;
    line-height: 1.45;
    margin-bottom: 8px;
  }

  body.sanpelca-page .spec-table-section .ec-section-sub{
    font-size: 0.92rem !important;
    line-height: 1.7;
    margin-bottom: 10px;
  }

  body.sanpelca-page .spec-legend{
    display: flex !important;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 4px;
  }

  /* テーブル本体 */
  body.sanpelca-page .spec-table.spec-table-v2{
    width: 100% !important;
    border: none !important;
    background: transparent !important;
  }

  body.sanpelca-page .spec-table.spec-table-v2 thead{
    display: none !important;
  }

  body.sanpelca-page .spec-table.spec-table-v2,
  body.sanpelca-page .spec-table.spec-table-v2 tbody,
  body.sanpelca-page .spec-table.spec-table-v2 tr,
  body.sanpelca-page .spec-table.spec-table-v2 td{
    display: block !important;
    width: 100% !important;
  }

  /* 1商品ごとのカード */
  body.sanpelca-page .spec-table.spec-table-v2 tbody tr{
    background: #fff !important;
    border: 1px solid #e5e9ef !important;
    padding: 14px 12px !important;
    margin: 0 0 12px !important;
    box-shadow: none !important;
    border-radius: 10px !important;
  }

  /* 各セル */
  body.sanpelca-page .spec-table.spec-table-v2 tbody td{
    padding: 0 !important;
    margin: 0 0 10px !important;
    border: none !important;
    background: transparent !important;
    text-align: left !important;
  }

  body.sanpelca-page .spec-table.spec-table-v2 tbody td:last-child{
    margin-bottom: 0 !important;
  }

  /* ラベル */
  body.sanpelca-page .spec-table.spec-table-v2 tbody td::before{
    content: attr(data-label);
    display: block;
    font-size: 0.78rem;
    font-weight: 700;
    color: #6b7280;
    line-height: 1.4;
    margin-bottom: 3px;
  }

  /* グレードだけ目立たせる */
  body.sanpelca-page .spec-table.spec-table-v2 .spec-cell-grade{
    font-size: 1.35rem !important;
    font-weight: 800 !important;
    color: #111 !important;
    padding-bottom: 8px !important;
    margin-bottom: 10px !important;
    border-bottom: 1px solid #edf1f5 !important;
  }

  body.sanpelca-page .spec-table.spec-table-v2 .spec-cell-grade::before{
    font-size: 0.78rem;
    margin-bottom: 2px;
  }

  /* 数値を見やすく */
  body.sanpelca-page .spec-table.spec-table-v2 tbody td:nth-child(2),
  body.sanpelca-page .spec-table.spec-table-v2 tbody td:nth-child(3){
    font-size: 1.1rem !important;
    font-weight: 700 !important;
    color: #111 !important;
  }

  /* 対応カラー */
  body.sanpelca-page .spec-color-chips{
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    margin-top: 2px;
  }

  body.sanpelca-page .color-chip{
    padding: 5px 8px !important;
    font-size: 0.78rem !important;
    line-height: 1.2 !important;
  }

  /* 寸法 */
  body.sanpelca-page .spec-dims{
    gap: 4px !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
  }

  /* 備考 */
  body.sanpelca-page .spec-table.spec-table-v2 tbody td:nth-child(6){
    font-size: 0.92rem !important;
    line-height: 1.6 !important;
    color: #222 !important;
  }
}

/* =================================
   スマホ：対応カラーだけ横並び強制
   ================================= */
@media (max-width: 768px){

  /* 対応カラーのセル */
  body.sanpelca-page .spec-table.spec-table-v2 tbody td[data-label="対応カラー"]{
    display: block !important;
    width: 100% !important;
    margin: 0 0 10px !important;
  }

  /* チップを入れている親 */
  body.sanpelca-page .spec-table.spec-table-v2 tbody td[data-label="対応カラー"] .spec-color-chips{
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 6px !important;
    width: 100% !important;
  }

  /* 1個1個のチップ */
  body.sanpelca-page .spec-table.spec-table-v2 tbody td[data-label="対応カラー"] .color-chip{
    display: inline-flex !important;
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: auto !important;
    max-width: none !important;
    white-space: nowrap !important;
    writing-mode: horizontal-tb !important;
    padding: 5px 8px !important;
    line-height: 1.2 !important;
  }
}

/* =================================
   スマホ時も横並び5分割メニュー
================================= */
@media (max-width: 768px){

  .main-menu{
    background:#0f2f66;
    overflow:hidden;
  }

  .main-menu ul{
    margin:0;
    padding:0;
    list-style:none;
    display:grid !important;
    grid-template-columns: repeat(5, 1fr);
    width:100%;
  }

  .main-menu li{
    border-left:1px solid rgba(255,255,255,0.12);
    border-right:none;
    border-bottom:none;
    min-width:0;
  }

  .main-menu li:first-child{
    border-left:none;
  }

  .main-menu a{
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    min-height:88px;             /* 高さを確保 */
    padding:10px 6px;
    font-size:13px;
    line-height:1.45;
    font-weight:700;
    color:#fff;
    white-space:normal !important;
    word-break:keep-all !important;
    overflow-wrap:anywhere !important;
    writing-mode:horizontal-tb !important;
    text-orientation:mixed !important;
  }
}

/* さらに小さいスマホ */
@media (max-width: 480px){
  .main-menu a{
    min-height:82px;
    padding:8px 4px;
    font-size:12px;
    line-height:1.4;
  }
}