    @charset "UTF-8";

    /* Custom Content Styles migrated from styles/main.css for New Design */

    /* General Utilities from Old CSS */
    .text {
        line-height: 1.8;
    }

    .mb30 {
        margin-bottom: 30px;
    }

    .mb40 {
        margin-bottom: 40px;
    }

    .format {
        margin-bottom: 1em;
    }

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

    /* Restored Blue Title for h2 within content */
    .content h2 {
        color: #009de8;
        font-size: 2.0rem;
        /* 20px */
        font-weight: bold;
        margin-bottom: 30px;
        border-bottom: none;
        /* Override if all.css adds border */
    }

    /* Blue Title / Headings */
    .headingBlueSquare {
        font-weight: bold;
    }

    .headingBlueSquare:before {
        content: '■';
        color: #00a1e9;
        margin-right: 0.5em;
    }

    /* Product Summary */
    .summary {
        margin-bottom: 50px;
    }

    .summary .text {
        font-size: 1.6rem;
    }

    /* Specification Table (Product Specs) */
    .specificationInfo {
        width: 100%;
        margin-bottom: 80px;
        border-collapse: collapse;
    }

    .specificationInfo th {
        color: #00559a;
        text-align: center;
        background-color: #eaeaea;
        padding: 15px 25px;
        width: 30%;
        border: 1px solid #aaaaaa;
        border: 1px solid #aaaaaa;
        vertical-align: baseline;
        /* Matched to main.css */
        line-height: 1.8em;
        font-weight: bold;
    }

    .specificationInfo td {
        padding: 15px 25px;
        border: 1px solid #aaaaaa;
        width: 70%;
        width: 70%;
        line-height: 1.8em;
        vertical-align: middle;
        /* Matched to legacy global reset */
    }

    .caption-bottom {
        caption-side: bottom;
        margin-top: 10px;
        text-align: left;
        display: table-caption;
    }

    /* Flex Layout for Products Detail */
    .productsDetail.flex {
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
        gap: 20px;
    }

    .productsDetail__left,
    .productsDetail__right {
        width: 100%;
    }

    @media (min-width: 768px) {

        .productsDetail__left,
        .productsDetail__right {
            width: 48%;
            /* Split roughly in half on desktop */
        }
    }

    .productsDetail figure {
        margin: 0 0 20px 0;
        text-align: center;
    }

    .productsDetail img {
        max-width: 100%;
        height: auto;
        vertical-align: bottom;
        /* Removes the 4px inline gap */
        margin-bottom: 20px;
    }

    .productsDetail figcaption {
        font-size: 1.4rem;
        margin-top: 5px;
    }

    /* Overlap Text - REMOVED for new design (Title Top-Left, Description Bottom) */
    .overlapText {
        position: relative;
    }

    .overlapText figcaption {
        position: static;
        background: none;
        padding: 0;
        margin-bottom: 5px;
        text-align: left;
        font-weight: bold;
        /* Title Style */
    }

    /* -----------------------------------------------------------------
   New Product Page Layouts (Landscape vs Portrait)
   ----------------------------------------------------------------- */
    @media (min-width: 768px) {

        /* Landscape Layout: Stacked Left (Main) and Right (derived from flex wrap) */
        .productsDetail-landscape .productsDetail__left,
        .productsDetail-landscape .productsDetail__right {
            width: 100%;
        }

        /* Landscape Supplemental: Horizontal Row */
        .productsDetail-landscape .productsDetail__right {
            display: flex;
            flex-wrap: wrap;
            gap: 20px;
            margin-top: 20px;
        }

        .productsDetail-landscape .productsDetail__right figure {
            width: calc(50% - 10px);
            /* 2 cols */
            margin-right: 0;
            margin-bottom: 20px;
        }

        /* Portrait Layout: Side by Side */
        .productsDetail-portrait .productsDetail__left {
            width: 45%;
        }

        .productsDetail-portrait .productsDetail__right {
            width: 50%;
            /* Remaining space */
            display: flex;
            /* Ensure vertical behavior if needed, or block */
            flex-direction: column;
        }

        .productsDetail-portrait .productsDetail__right figure {
            width: 100%;
            display: block;
            margin-right: 0;
        }
    }

    /* Supplemental Image Captions: Top Left (Title) */
    .productsDetail__right figure {
        position: relative;
        text-align: left;
        max-width: 320px;
        /* Base constraint to not be too large */
    }

    /* Specific constraint for portrait supplemental area to avoid them being huge if column is wide */
    .productsDetail-portrait .productsDetail__right figure {
        max-width: 320px;
    }

    .productsDetail-landscape .productsDetail__right figure {
        /* For landscape, they are already 50% width, so we might not need strict pixel max-width, but good to keep sane */
        max-width: 100%;
    }

    .productsDetail__right figure figcaption {
        position: static;
        /* No overlap */
        margin: 0 0 5px 0;
        background: none;
        padding: 0;
        font-size: 1.4rem;
        font-weight: bold;
        text-align: left;
        display: block;
        width: auto;
    }

    .photo-title {
        display: block;
        font-weight: bold;
        margin-bottom: 5px;
        text-align: left;
        color: #333;
    }

    .photo-desc {
        display: block;
        font-size: 1.4rem;
        margin-top: 5px;
        text-align: left;
    }

    /* Go Index Button */
    .goIndex {
        text-align: right;
        margin: 40px 0;
    }

    .goIndex a {
        padding-left: 1em;
        background: url('../../i/icon_arrow_04.png') no-repeat left center;
        background-size: 11px auto;
        /* Assuming relative path works or needs adjustment */
        color: #9a3399;
    }


    /* Specific Product Styles (foodCapping1) Adaptation */
    /* In old CSS, different products had specific widths. Here we rely on standard flexible layouts. */
    /* But we can add specific overrides if needed. */

    .productsDetail__right figure {
        display: inline-block;
        vertical-align: top;
        margin-right: 10px;
    }

    @media (max-width: 767px) {

        .specificationInfo th,
        .specificationInfo td {
            display: block;
            width: 100%;
            box-sizing: border-box;
        }
    }


    /* Message Page Styles */
    .topImg {
        width: 100%;
        /* Matches text block width */
        height: auto;
        margin: 0 auto 80px;
        /* Restores the large legacy spacing */
        display: block;
    }

    .topMsg p {
        margin-bottom: 30px;
    }

    /* -----------------------------------------------------------------
   Profile Summary Table Styles (Company Profile)
   ----------------------------------------------------------------- */
    .summaryTable {
        width: 100%;
        margin-bottom: 100px;
        border-collapse: collapse;
        /* Ensure borders are clean */
    }

    /* Header Cells */
    .summaryTable th {
        padding: 35px 20px 35px 0;
        /* Adjusted right padding for spacing */
        border-bottom: 1px solid #dfdfdf;
        font-size: 2.0rem;
        /* 20px */
        color: #009de8;
        text-align: left;
        font-weight: bold;
        width: 25%;
        /* Responsive approx width vs fixed 210px */
        min-width: 150px;
        letter-spacing: 0.025em;
        vertical-align: top;
        box-sizing: border-box;
    }

    /* Data Cells */
    .summaryTable td {
        padding: 35px 0;
        border-bottom: 1px solid #dfdfdf;
        line-height: 1.6;
        vertical-align: top;
    }

    /* Business Office Section (Flexbox replacement for Floats) */
    .summaryTable .office {
        /* No special style needed on td, but inner divs need layout */
    }

    .summaryTable .office .left {
        margin-bottom: 20px;
    }

    .summaryTable .office .right {
        /* No float */
    }

    /* Desktop Layout for Office (Side by Side) */
    @media (min-width: 768px) {
        .summaryTable .office {
            display: flex;
            flex-wrap: wrap;
            gap: 40px;
            /* Instead of margin-right 100px */
        }

        .summaryTable .office .left {
            flex: 0 0 auto;
            margin-bottom: 0;
        }

        .summaryTable .office .right {
            flex: 1 1 auto;
        }

        .summaryTable th {
            width: 210px;
            /* Fixed width on desktop to match legacy strictness */
        }
    }

    /* Access Map Link */
    .arrowLink {
        padding-left: 14px;
        background: url('../../i/icon_arrow_01.png') no-repeat left center;
        background-size: 6px auto;
        color: #009de8;
        text-decoration: underline;
        margin-top: 10px;
        display: inline-block;
    }

    /* Traffic/Access Details */
    .traffic-title {
        font-weight: bold;
        margin-bottom: 10px;
    }

    .traffic-case {
        font-weight: bold;
        margin-top: 15px;
        margin-bottom: 5px;
        padding-left: 1em;
        position: relative;
    }

    .traffic-case:before {
        content: "・";
        position: absolute;
        left: 0;
    }

    /* Lists in summary table (Major Products etc) */

    /* Technical Info Image Resizing */
    .tech-info-img {
        display: block;
        margin: 30px auto;
        width: 70%;
        height: auto;
    }

    @media (max-width: 767px) {
        .tech-info-img {
            width: 100%;
        }
    }

    .summaryTable ul.disc {
        list-style-type: disc;
        margin-left: 1.5em;
        margin-bottom: 1em;
    }

    /* Financial Announcements List */
    .summaryTable ul li {
        margin-bottom: 0.5em;
    }

    .summaryTable a.basicLink {
        color: #00559a;
        text-decoration: underline;
    }

    /* -----------------------------------------------------------------
   Top Page Index Menu (Products, Tech, Contact)
   ----------------------------------------------------------------- */
    .indexMenu {
        margin-bottom: 50px;
        padding: 0;
        list-style: none;
    }

    .indexMenu li {
        margin-bottom: 30px;
    }

    .indexMenu img {
        max-width: 100%;
        height: auto;
        vertical-align: bottom;
        transition: opacity 0.3s;
    }

    .indexMenu a:hover img {
        opacity: 0.8;
    }

    @media (min-width: 768px) {
        .indexMenu {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 40px 20px;
            align-items: start;
            justify-content: start;
            margin: 0 auto;
            max-width: 1200px;
        }

        .indexMenu li {
            width: 100%;
            margin-bottom: 0;
        }
    }

    /* Button with Blue Circle */
    .indexMenu a figure {
        position: relative;
    }

    .indexMenu a figure figcaption {
        font-size: 1.4rem;
        margin-top: 15px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        font-weight: bold;
    }

    .indexMenu a figure figcaption::after {
        content: "\e900";
        font-family: 'icomoon';
        display: flex;
        align-items: center;
        justify-content: center;
        width: 24px;
        height: 24px;
        background-color: #00559a;
        color: #fff;
        border-radius: 50%;
        font-size: 1.0rem;
        font-weight: bold;
        margin-left: 10px;
    }

    @media (min-width: 768px) {

        /* News Section Spacing */
        .top-page .page-title {
            display: none;
        }

        .top-page .layout-content .section {
            padding-top: 0;
            margin-top: 0;
        }

        .top-page .news,
        .news-list-page .news {
            margin-top: 80px !important;
            display: flex;
            /* ここは記事リストとの横並び用 */
            align-items: flex-start;
            justify-content: flex-start;
            /* 左寄せ */
            gap: 60px;
            width: 100%;
            margin-left: 0 !important;
            margin-right: 0 !important;
        }

        .news .section-title-wrapper {
            display: block !important;
            /* ご提案通りflexを解除してブロック属性に */
            width: 220px;
            flex-shrink: 0;
            padding-top: 10px;
            margin-bottom: 0;
            margin-left: 0 !important;
            margin-right: 0 !important;
            border: none;
        }

        .news .section-title-group {
            display: block !important;
            margin: 0 !important;
            padding: 0 !important;
        }

        .news .section-title-group h2 {
            text-align: left;
        }

        .top-page .news .topics__wrap {
            flex: 1;
            margin-bottom: 0;
        }

        /* Footer Adjustments */
        .footer-showroom-item {
            margin-top: 20px !important;
        }

        /* Product App Top Banners */
        .top-page .product-title-wrapper {
            margin-top: 5px;
            margin-bottom: 20px;
            max-width: 1200px;
            width: 100%;
            margin-left: auto;
            margin-right: auto;
        }

        .bottom-banners-top li figure figcaption {
            margin-top: 15px;
            font-size: 16px;
            font-weight: 500;
        }

        .indexMenu.product-banners {
            margin-top: 0;
            margin-bottom: 50px;
        }

        /* Blue Line Separator */
        .blue-line {
            border: none;
            border-top: 1px solid #009de8;
            width: 100%;
            max-width: 1200px;
            margin: 0 auto 50px auto;
            height: 1px;
        }

        /* Bottom Banners Layout Adjustments */
        .bottom-banners-top {
            display: grid !important;
            grid-template-columns: repeat(3, 1fr) !important;
            gap: 40px 20px;
            margin-bottom: 60px !important;
            max-width: 1200px;
            margin-left: auto;
            margin-right: auto;
        }

        .bottom-banner-bws {
            margin-bottom: 40px;
            max-width: 1200px;
            margin-left: auto;
            margin-right: auto;
        }

        .bottom-banner-bws img {
            width: 100%;
            height: auto;
            display: block;
        }
    }

    /* Mobile Adjustments for Banners */
    @media (max-width: 767px) {

        .indexMenu,
        .product-title-wrapper,
        .bottom-banners-top,
        .bottom-banner-bws {
            padding: 0 5%;
            /* Add side spacing on mobile */
        }

        .bottom-banners-top li {
            margin-bottom: 30px;
        }

        .bottom-banner-bws {
            margin-top: 20px;
            margin-bottom: 30px;
        }
    }

    /* -----------------------------------------------------------------
   Footer Layout Adjustments
   ----------------------------------------------------------------- */
    @media (min-width: 768px) {
        .layout-footer_nav {
            align-items: flex-start !important;
            /* Force columns to align at the top */
        }

        /* 3rd column alignment adjustment */
        .layout-footer_nav .layout-footer_nav_inner:nth-child(3) {
            padding-top: 0 !important;
        }
    }

    /* -----------------------------------------------------------------
   History Page Timeline Styles
   ----------------------------------------------------------------- */
    .historyTable {
        width: 100%;
        border-collapse: collapse;
        margin-bottom: 50px;
    }

    .historyTable th {
        width: 15%;
        min-width: 100px;
        padding: 20px 0;
        text-align: left;
        vertical-align: top;
        font-weight: bold;
        font-size: 1.8rem;
        border-bottom: 1px solid #eaeaea;
    }

    .historyTable td {
        padding: 20px 0 20px 40px;
        vertical-align: top;
        line-height: 1.8;
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        border-bottom: 1px solid #eaeaea;
    }

    .historyTable img {
        margin-top: 5px;
        margin-left: 20px;
        max-width: 300px;
        width: auto;
        flex: 0 0 auto;
    }

    .historyTable img.shrink65 {
        width: 195px;
        /* 65% of 300px */
        height: auto;
    }

    .historyTable img.shrink70 {
        width: 210px;
        /* 70% of 300px */
        height: auto;
    }

    .historyTable img.shrink60 {
        width: 270px;
        /* 60% of 300px */
        height: auto;
    }

    .historyTable figure {
        margin: 5px 0 0 20px;
        padding: 0;
        flex: 0 0 auto;
        max-width: 300px;
    }

    .historyTable figure img {
        margin: 0;
        max-width: 100%;
    }

    .historyTable figcaption {
        font-size: 1.2rem;
        margin-top: 5px;
        font-weight: normal;
    }

    /* Responsive History */
    @media (max-width: 767px) {

        .historyTable th,
        .historyTable td {
            display: block;
            width: 100%;
            padding: 10px 0;
            border-bottom: none;
        }

        .historyTable tr {
            border-bottom: 1px solid #eaeaea;
        }

        .historyTable td {
            padding-left: 0;
            padding-bottom: 30px;
            display: block;
        }

        .historyTable img,
        .historyTable figure {
            margin-left: 0;
            margin-top: 20px;
            max-width: 100%;
        }

        .historyTable img.shrink65 {
            width: 65%;
            max-width: none;
        }

        .historyTable img.shrink70 {
            width: 70%;
            max-width: none;
        }

        .historyTable img.shrink60 {
            width: 90%;
            max-width: none;
        }

        .historyTable th {
            padding-bottom: 0;
            font-size: 1.6rem;
        }
    }

    /* -----------------------------------------------------------------
   Products Page Grid Layout
   ----------------------------------------------------------------- */
    .product-grid {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        margin-bottom: 50px;
    }

    .product-grid .s-cate {
        width: 100%;
        /* Mobile first: 1 column */
        margin-bottom: 40px;
    }

    @media (min-width: 768px) {
        .product-grid .s-cate {
            width: 48%;
            /* Desktop: 2 columns */
        }
    }

    .product-grid .productsPhoto {
        width: 100%;
        height: auto;
        margin-bottom: 15px;
    }

    /* Ensure headings in grid match other sections */
    .product-grid h2 {
        color: #009de8;
        font-size: 1.8rem;
        font-weight: bold;
        margin-bottom: 15px;
    }

    /* -----------------------------------------------------------------
   Top Category Layout (Food & Beverage)
   ----------------------------------------------------------------- */
    .l-cate {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        margin-bottom: 50px;
    }

    .l-cate h2,
    .l-cate .productsPhoto {
        width: 100%;
    }

    .l-cate .productsPhoto {
        margin-bottom: 40px;
        /* Open space between Photo and Content */
    }

    .l-cate .content__left,
    .l-cate .content__right {
        width: 100%;
        /* Mobile stack */
        margin-bottom: 30px;
    }

    @media (min-width: 768px) {

        .l-cate .content__left,
        .l-cate .content__right {
            width: 48%;
            /* Desktop 2-col */
            margin-bottom: 0;
        }
    }

    /* Sub-headings in l-cate (Food & Beverage) */
    .l-cate .content__left h3,
    .l-cate .content__right h3 {
        color: #1E52A6;
        /* Blue Title */
        font-size: 1.7rem;
        font-weight: bold;
        margin-bottom: 10px;
        /* Narrow space below header */
        margin-top: 50px;
        /* Open space above header (between list and next header) */
        line-height: 1.4;
    }

    /* Allow first header to be closer to top if needed, but margin-top 50px from image might be too much if productsPhoto has 40px margin. */
    /* Total gap = 40px (photo) + 50px (h3 margin). Let's reset first child margin-top. */
    .l-cate .content__left h3:first-child,
    .l-cate .content__right h3:first-child {
        margin-top: 0;
    }

    /* Product Lists in l-cate */
    .l-cate .productsList {
        margin-bottom: 0;
        /* Space handled by next H3 margin-top */
        padding-left: 0;
        list-style: none;
    }

    .l-cate .productsList li {
        margin-bottom: 10px;
        padding-left: 1.5em;
        position: relative;
        line-height: 1.6;
    }

    /* Arrow Icon for list items */
    /* Arrow Icon for list items - REMOVED for new design */
    .l-cate .productsList li::before {
        content: none;
    }

    /* Removed arrow style properties */

    .l-cate .productsList li a {
        color: #1E52A6;
        text-decoration: none;
    }

    .l-cate .productsList li a:hover {
        text-decoration: underline;
    }

    /* New Red > Mark for Products List Links */
    .productsList a::before {
        content: ">";
        color: #1E52A6;
        /* Dark blue matching text */
        font-weight: bold;
        margin-right: 0.5em;
        display: inline-block;
    }

    /* -----------------------------------------------------------------
       Health Management Page Styles
       ----------------------------------------------------------------- */
    .health-section .h3 {
        margin-top: 50px;
        /* Increased top margin as requested */
        margin-bottom: 20px;
        color: #009de8;
        /* Keep brand color or change if "different style" implies distinct color? keeping brand for consistency unless specified */
        font-size: 1.8rem;
        font-weight: bold;
        border-bottom: 1px solid #ccc;
        /* Generic separator if different? Or just spacing? User emphasized margin. */
        padding-bottom: 10px;
    }

    .health-declaration {
        font-weight: bold;
        font-size: 2.0rem;
        /* Larger than H3 (1.8rem) */
        margin-bottom: 20px;
        line-height: 1.6;
    }

    /* Flex Layout for Health Page (Image/Text) */
    .health-flex {
        display: flex;
        gap: 40px;
        align-items: flex-end;
        margin-bottom: 60px;
    }

    .health-flex .text {
        flex: 1;
    }

    .health-flex .image {
        flex: 0 0 300px;
        /* Default for President */
    }

    .health-flex .image.logo-container {
        flex: 0 0 300px;
        /* 150% of 200px = 300px */
    }

    @media (max-width: 767px) {
        .health-flex {
            flex-direction: column;
            align-items: center;
        }

        .health-flex .text,
        .health-flex .image,
        .health-flex .image.logo-container {
            flex: auto;
            width: 100%;
            margin-bottom: 20px;
        }

        .health-flex .image {
            order: 2;
            /* Ensure image is below text */
        }
    }

    /* -----------------------------------------------------------------
   Product Title Area (for Catalog Link Relocation)
   ----------------------------------------------------------------- */
    .product-title-area {
        position: relative;
        margin-top: 0px;
        margin-bottom: 25px;
    }

    /* Ensure first-child behavior matches original h3:first-child */
    .product-title-area:first-child {
        margin-top: 0;
    }

    .product-title-area .content-title {
        margin-top: 0;
        /* Reset internal margin */
        /* Maintain bottom margin if desired, or adjust */
    }

    .catalogLink {
        margin: 0;
        font-size: 1.4rem;
    }

    .catalogLink a {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        text-decoration: none;
        color: #1E52A6;
    }

    .catalogLink a:hover {
        text-decoration: underline;
    }

    /* IPROS Logo Adjustment */
    .catalogLink img {
        height: 30px;
        /* Adjust height to match text balance */
        width: auto;
        margin: 0;
    }

    /* Arrow icon for internal catalog download links */
    .catalogLink a[href*="catalog-request.php"]::after {
        content: "\e900";
        font-family: 'icomoon';
        display: flex;
        align-items: center;
        justify-content: center;
        width: 24px;
        height: 24px;
        background-color: #00559a;
        color: #fff;
        border-radius: 50%;
        font-size: 1.0rem;
        margin-left: 5px;
    }

    @media (max-width: 767px) {
        .product-title-area {
            margin-top: 50px;
            margin-bottom: 25px;
        }

        .product-title-area:first-child {
            margin-top: 0;
        }

        .product-title-area .catalogLink {
            position: absolute;
            top: 0;
            right: 30px;
            /* Match wrap padding */
            margin-top: 0;
            text-align: right;
        }

        /* Adjust format (Model) to make sure it doesn't overlap if catalog link is long */
        .product-title-area .format {
            padding-right: 250px;
            /* Room for catalog link */
        }
    }

    /* -----------------------------------------------------------------
   Header Background Images
   ----------------------------------------------------------------- */
    .page-title.page-title-bg {
        height: 300px;
        /* Adjust as needed */
        background-size: cover;
        background-position: center;
        position: relative;
        display: flex;
        align-items: center;
        border-bottom: none;
        /* Override existing border if any */
    }

    /* Specific Backgrounds */
    .bg-profile {
        background-image: url('../../i/naka-img01.png');
    }

    .bg-products {
        background-image: url('../../i/naka-img02.png');
    }

    .bg-tech {
        background-image: url('../../i/naka-img03.png');
    }

    /* Text and Breadcrumbs on Dark Background */
    .page-title.page-title-bg h1 {
        color: #1E52A6;
        /* Blue color */
        text-shadow: 0 0 5px #fff, 0 0 10px #fff;
        /* White glow/shadow */
        position: relative;
        z-index: 2;
        margin: 0 !important;
        /* Reset margins for perfect centering */
        padding-left: 0;
        /* Reset if needed */
    }

    .page-title.page-title-bg .page-title_wrap {
        position: relative;
        height: 100%;
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-start !important;
        padding-left: 50px;
        /* Adjust alignment */
        width: 100%;
        max-width: 1260px;
        margin: 0 auto;
    }

    /* Breadcrumbs overrides for BG */
    .page-title-bg .breadcrumbs {
        position: absolute;
        top: 20px;
        left: 50px;
        /* Align with title padding */
        padding: 0;
        background: transparent;
    }

    .page-title-bg .breadcrumbs ol li,
    .page-title-bg .breadcrumbs ol li a,
    .page-title-bg .breadcrumbs ol li span {
        color: #fff !important;
        text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
    }

    .page-title-bg .breadcrumbs ol li::after {
        color: #fff !important;
    }

    /* Mobile Adjustments */
    @media (max-width: 767px) {

        .page-title.page-title-bg {
            margin-top: 100px;
            /* Push down to clear fixed header */
            height: 200px;
        }

        .page-title.page-title-bg .page-title_wrap {
            padding-left: 0 !important;
            display: flex;
            justify-content: center;
            align-items: center;
        }

        .page-title.page-title-bg h1 {
            /* Ensure no extra margins interference */
            margin: 0 !important;
            line-height: 1.2;
        }

        .page-title-bg .breadcrumbs {
            left: 20px;
            top: 15px;
            /* Position relative to the image start */
            z-index: 10;
        }
    }

    /* News List Styles (Added for WordPress Integration) */
    .topics__wrap {
        border-top: 1px solid #eaeaea;
        margin-bottom: 50px;
    }

    .topics__box {
        border-bottom: 1px solid #eaeaea;
        padding: 12px 0;
    }

    .topics__date {
        color: #666;
        font-size: 1.4rem;
        margin-bottom: 5px;
    }

    .topics__text {
        font-size: 1.6rem;
        line-height: 1.6;
        position: relative;
    }

    .topics__text a {
        color: #1E52A6;
        text-decoration: none;
        display: block;
        /* Make link fill the width to push arrow to right if needed, or just allow spacing */
        padding-right: 40px;
        /* Space for arrow */
        position: relative;
        transition: opacity 0.3s;
    }

    .topics__text a:hover {
        opacity: 0.7;
        text-decoration: underline;
    }

    /* Arrow Icon */
    .topics__text a::after {
        content: '';
        position: absolute;
        right: 10px;
        top: 50%;
        /* Align vertically */
        transform: translateY(-70%) rotate(45deg);
        /* Center and rotate */
        width: 8px;
        height: 8px;
        border-top: 2px solid #1E52A6;
        border-right: 2px solid #1E52A6;
    }

    /* Pagination Styles */
    .pagination {
        margin-top: 40px;
        text-align: center;
        display: flex;
        justify-content: center;
        gap: 10px;
    }

    .pagination .page-numbers {
        display: flex;
        justify-content: center;
        align-items: center;
        min-width: 40px;
        height: 40px;
        padding: 0 10px;
        border: 1px solid #ddd;
        text-decoration: none;
        color: #333;
        font-size: 1.4rem;
        background-color: #fff;
        transition: all 0.3s;
    }

    .pagination .page-numbers.current,
    .pagination .page-numbers:hover {
        background-color: #1E52A6;
        color: #fff;
        border-color: #1E52A6;
    }

    .pagination .page-numbers.dots {
        border: none;
        background: transparent;
    }

    /* News Section Header */
    .section-title-wrapper {
        display: flex;
        align-items: center;
        justify-content: space-between;
        border-bottom: none;
        /* Removed blue line */
        padding-bottom: 10px;
        margin-bottom: 20px;
        padding-top: 40px;
        /* Position slightly lower */
    }

    .top-page .section-title-wrapper {
        display: flex;
        align-items: center;
        justify-content: space-between;
        border-bottom: none;
        /* Removed blue line */
        padding-bottom: 10px;
        margin-bottom: 12px;
        padding-top: 0;
        /* Position slightly lower */
    }

    .section-title-group {
        display: flex;
        align-items: baseline;
        gap: 15px;
    }

    /* content prefix removed for robustness */
    .section-title-wrapper .section-title-group h2.section-title-en,
    .section-title-wrapper .section-title-group h2.section-title-news {
        font-size: 5.4rem;
        font-weight: bold;
        color: #00559a;
        /* Site dark blue */
        margin: 0;
        line-height: 1;
        font-family: 'Lato', sans-serif;
        /* Using available font */
    }

    .section-title-ja {
        font-size: 1.4rem;
        color: #009de8;
        /* Site lighter blue */
        font-weight: normal;
    }

    .section-link-btn {
        display: flex;
        align-items: center;
        gap: 5px;
        font-size: 1.4rem;
        color: #333;
        text-decoration: none;
        transition: opacity 0.3s;
    }

    .section-link-btn:hover {
        opacity: 0.7;
        text-decoration: none;
    }

    .section-link-btn::after {
        content: "\e900";
        /* Arrow icon from icomoon */
        font-family: 'icomoon';
        display: flex;
        align-items: center;
        justify-content: center;
        width: 24px;
        height: 24px;
        background-color: #00559a;
        color: #fff;
        border-radius: 50%;
        font-size: 1.0rem;
        margin-left: 5px;
    }

    @media (max-width: 767px) {
        .section-title-en {
            font-size: 2.8rem;
        }

        .section-link-btn {
            font-size: 1.2rem;
        }
    }

    /* -----------------------------------------------------------------
   Contact Form Styles (WordPress CF7)
   ----------------------------------------------------------------- */
    .wpcf7 {
        max-width: 100%;
        margin: 0 auto;
        background: #fff;
        padding: 0;
    }

    .wpcf7 p {
        margin-bottom: 30px;
    }

    .wpcf7 label {
        display: block;
        width: 100%;
        font-weight: bold;
        margin-bottom: 10px;
        font-size: 1.6rem;
        color: #333;
    }

    .wpcf7-form-control-wrap {
        display: block;
        width: 100%;
        margin-top: 5px;
    }

    .wpcf7 input[type="text"],
    .wpcf7 input[type="email"],
    .wpcf7 input[type="tel"],
    .wpcf7 input[type="url"],
    .wpcf7 textarea {
        width: 100%;
        padding: 15px;
        border: 1px solid #ccc;
        border-radius: 0;
        font-size: 1.6rem;
        box-sizing: border-box;
        background-color: #f9f9f9;
    }

    .wpcf7 input[type="text"]:focus,
    .wpcf7 input[type="email"]:focus,
    .wpcf7 input[type="tel"]:focus,
    .wpcf7 textarea:focus {
        background-color: #fff;
        border-color: #009de8;
        outline: none;
    }

    .wpcf7 textarea {
        height: 200px;
    }

    /* Submit Button */
    .wpcf7 input[type="submit"] {
        display: block;
        width: 300px;
        max-width: 100%;
        margin: 40px auto 0;
        padding: 20px;
        background-color: #00559a;
        color: #fff;
        font-size: 1.6rem;
        font-weight: bold;
        border: none;
        cursor: pointer;
        transition: opacity 0.3s;
        text-align: center;
        border-radius: 0;
        -webkit-appearance: none;
    }

    .wpcf7 input[type="submit"]:hover {
        opacity: 0.8;
    }

    /* Required Label */
    .wpcf7 label span[style*="red"] {
        color: #ff0000 !important;
        font-size: 1.2rem;
        margin-left: 5px;
        vertical-align: middle;
    }

    @media (max-width: 767px) {
        .wpcf7 input[type="submit"] {
            width: 100%;
        }
    }

    /* Checkboxes and Radios */
    .wpcf7 input[type="checkbox"],
    .wpcf7 input[type="radio"] {
        -webkit-appearance: auto;
        -moz-appearance: auto;
        appearance: auto;
        margin-right: 5px;
        width: auto;
        height: auto;
        vertical-align: middle;
    }

    .wpcf7-list-item {
        display: inline-block;
        margin-right: 20px;
        margin-bottom: 10px;
    }

    .wpcf7-list-item-label {
        vertical-align: middle;
        font-weight: normal;
    }

    /* Fix heading styles in CF7 forms to match labels */
    .wpcf7 h3 {
        font-size: 1.6rem;
        font-weight: bold;
        color: #333;
        margin-bottom: 10px;
        margin-top: 20px;
        border: none;
        /* Reset distinct styles if any */
    }

    /* Catalog Download Page Images */
    .catalog-link-wrapper {
        display: flex;
        align-items: center;
    }

    .catalog-link-wrapper img {
        width: 150px;
        margin-right: 20px;
        border: 1px solid #ccc;
        height: auto;
        vertical-align: middle;
    }

    @media (max-width: 767px) {
        .catalog-link-wrapper {
            flex-direction: column;
            align-items: flex-start;
        }

        .catalog-link-wrapper img {
            margin-right: 0;
            margin-bottom: 10px;
            width: 100px;
        }
    }

    /* Contact Page Layout */
    .contact-flex-container {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        gap: 40px;
        margin-bottom: 50px;
    }

    .contact-left {
        width: 30%;
    }

    .contact-right {
        width: 65%;
        text-align: center;
    }

    .contact-right img {
        max-width: 100%;
        height: auto;
    }

    @media (max-width: 767px) {
        .contact-flex-container {
            flex-direction: column;
        }

        .contact-left,
        .contact-right {
            width: 100%;
        }

        .contact-right {
            margin-top: 30px;
        }
    }

    /* Catalog Download Page Styles */
    .content h1.content__title {
        color: #009de8;
        font-size: 2.4rem;
        font-weight: bold;
        margin-bottom: 30px;
        border-bottom: none;
    }

    .catalog-list {
        display: flex;
        flex-wrap: wrap;
        gap: 40px 20px;
        /* Reduced gap slightly to fit 4 cols */
        margin-bottom: 50px;
    }

    .catalog-item {
        width: 100%;
    }

    .catalog-item figure {
        margin: 0;
        text-align: center;
    }

    .catalog-item img {
        max-width: 100%;
        height: auto;
        border: 1px solid #ccc;
        margin-bottom: 10px;
        display: block;
        margin-left: auto;
        margin-right: auto;
    }

    .catalog-item figcaption {
        font-size: 1.4rem;
        color: #00559a;
        text-align: left;
        line-height: 1.5;
        text-decoration: underline;
    }

    .catalog-link {
        text-decoration: none;
        display: block;
    }

    .catalog-link:hover figcaption {
        text-decoration: none;
    }

    @media (min-width: 768px) {
        .catalog-item {
            width: calc(25% - 15px);
            /* 4 columns with gap consideration */
        }

        .content h1.content__title {
            font-size: 3.2rem;
            margin-bottom: 50px;
        }
    }

    @media (max-width: 767px) {
        .catalog-list {
            gap: 30px;
        }

        /* Keep 1 column on mobile for catalogs as they might be detailed, or 2 if small */
        /* Usually 2 is ok for thumbnails */
        .catalog-item {
            width: calc(50% - 15px);
        }
    }

    /*
Injected CSS to fix Contact Form 7 margins as per user request.
Targeting specific spacing issues in the catalog request form.
*/
    /* CSS to tighten spacing in Contact Form 7 as requested */
    .contact-form-wrapper .wpcf7-form-control-wrap {
        margin-bottom: 5px !important;
    }

    .contact-form-wrapper .wpcf7 p {
        margin-bottom: 10px !important;
    }

    /* Tighten space between checkbox list and "Other" field */
    .contact-form-wrapper .wpcf7-checkbox+.wpcf7-form-control-wrap {
        margin-top: -10px !important;
        display: block;
    }

    /* Tighten space between "Other" field and next section */
    .contact-form-wrapper input[type="text"].wpcf7-form-control {
        margin-bottom: 5px !important;
    }

    /* Suppress excess br tags only within the form wrapper */
    .contact-form-wrapper br {
        display: none;
    }

    /* Adjust font size and style of the completion message */
    .contact-form-wrapper .wpcf7-response-output {
        font-size: 1.6rem !important;
        font-weight: bold !important;
        margin-top: 25px !important;
        padding: 15px 20px !important;
        line-height: 1.6 !important;
    }

    /* Fix for breadcrumbs hidden under header on mobile */
    @media (max-width: 767px) {
        .layout-container {
            padding-top: 130px !important;
        }
    }

    /* -----------------------------------------------------------------
   Category Page Navigation & List Layout (Added by Agent)
   ----------------------------------------------------------------- */
    .category-nav {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
        margin-bottom: 10px;
        /* Reduced from 20px to match title gap */
        justify-content: flex-start;
    }

    .category-nav .cate-btn {
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        border: 1px solid #ccc;
        padding: 10px 5px;
        text-decoration: none;
        color: #333;
        font-weight: bold;
        background: #fff;
        box-sizing: border-box;
        font-size: 1.4rem;
        line-height: 1.4;
        transition: all 0.3s;
        /* (100% - 3 gaps of 10px) / 4 items */
        width: calc((100% - 30px) / 4);
        margin: 0;
        /* Reset margins to rely on gap */
    }

    /* Modern browsers use gap, margin-bottom is fallback or additive.
       With gap:10px, margin-bottom:10px adds up to 20px vertical space.
       Let's use gap fully and remove margin-bottom if possible, or keep it consistent.
       If we use gap, we don't need margin-bottom for rows generally.
    */
    .category-nav .cate-btn {
        margin-bottom: 0;
    }

    .category-nav .cate-btn:hover {
        opacity: 0.8;
    }

    /* Row 2 alignment logic: The user image shows 3 items on the second row aligned left.
   We can just let flex-wrap handle it.
*/

    .category-nav .cate-btn.is-active {
        background-color: #009de8;
        /* Matching blue */
        color: #fff;
        border-color: #009de8;
    }

    /* 3-Column Link List */
    .link-list-3col {
        column-count: 3;
        column-gap: 40px;
        margin-bottom: 60px;
    }

    .link-list-3col li {
        position: relative;
        padding-left: 25px;
        margin-bottom: 25px;
        break-inside: avoid;
        page-break-inside: avoid;
        line-height: 1.6;
    }

    .link-list-3col li::before {
        content: "";
        position: absolute;
        left: 0;
        top: 0.45em;
        /* Align with the vertical center of the first line of text */
        width: 12px;
        height: 12px;
        background-color: #999;
        border-radius: 50%;
    }

    .link-list-3col li a {
        text-decoration: underline;
        color: #00559a;
    }

    .link-list-3col li a:hover {
        text-decoration: none;
    }

    .hitokoto-description {
        display: block;
        font-size: 1.2rem;
        color: #333;
        margin-top: 4px;
        line-height: 1.4;
        text-decoration: none;
    }

    @media (max-width: 900px) {
        .link-list-3col {
            column-count: 2;
            column-gap: 30px;
        }
    }

    @media (max-width: 767px) {
        .category-nav .cate-btn {
            /* (100% - 1 gap of 10px) / 2 items */
            width: calc((100% - 10px) / 2);
        }
    }

    @media (max-width: 600px) {
        .link-list-3col {
            column-count: 1;
        }

        .category-nav .cate-btn {
            width: 100%;
        }
    }

    /* -----------------------------------------------------------------
   Top Page Product Banners (Button Style)
   ----------------------------------------------------------------- */
    /* Reset previous arrow styles if necessary or override */
    .indexMenu.product-banners a figure figcaption {
        display: block;
        /* Make it block to behave like a button */
        background: #fff;
        color: #333;
        border: 1px solid #ccc;
        padding: 10px;
        margin-top: 10px;
        text-align: center;
        font-weight: bold;
        transition: all 0.3s ease;
        /* Remove flex alignment from previous generic style if needed */
        justify-content: center;
    }

    /* Remove the circle arrow from these specific buttons if present */
    .indexMenu.product-banners a figure figcaption::after {
        display: none;
        content: none;
    }

    /* Hover Effect: Invert Colors */
    .indexMenu.product-banners a:hover figure figcaption {
        background: #009de8;
        /* Blue background */
        color: #fff;
        /* White text */
        border-color: #009de8;
        text-decoration: none;
    }

    /* Remove opacity effect on image if button handles hover,
   or keep it? User said "link button... color invert".
   Usually image brightness change is also good.
   Existing CSS has .indexMenu a:hover img { opacity: 0.8; }
   We'll leave that as is.
*/

    /* -----------------------------------------------------------------
   Top Page Product Categories Layout (added by agent)
   ----------------------------------------------------------------- */
    .product-categories-wrapper {
        margin-bottom: 30px !important;
        padding: 0 5%;
    }

    @media (min-width: 768px) {
        .product-categories-wrapper {
            padding: 0;
            max-width: 1200px;
            margin: 0 auto 30px !important;
        }
    }

    .top-cate-title {
        font-size: 1.6rem;
        font-weight: bold;
        color: #00559a !important;
        background-color: #e1effa;
        /* Light blue band - Default fallback */
        padding: 12px 45px 12px 15px;
        /* Increased right padding for circle arrow */
        margin-bottom: 10px;
        margin-top: 0;
        line-height: 1.4;
        border-bottom: none !important;
        cursor: pointer;
        position: relative;
    }

    .top-cate-title.is-field {
        background-color: #DEF7E5 !important;
    }

    .top-cate-title.is-product {
        background-color: #D6F1FA !important;
    }

    .top-cate-title.is-item {
        background-color: #D6E3F9 !important;
    }

    .top-cate-title.is-option {
        background-color: #E5E5E5 !important;
    }

    .top-cate-title .cate-sub-text {
        font-size: 1.2rem;
        font-weight: normal;
        color: #333;
        margin-left: 10px;
    }

    .top-cate-title:first-child {
        margin-top: 0;
    }

    /* -----------------------------------------------------------------
   Category Button Hover Overrides (Agent Update)
   ----------------------------------------------------------------- */

    /* Redundant styles removed and consolidated above */

    .category-nav .cate-btn {
        border-color: #00559a;
        /* Default border blue-ish or gray? */
        /* Previous was #ccc. Let's keep it clean or make it light blue? */
        /* User said: "Button is Nav-Blue on Hover" */
        /* Let's keep default light, but ensure hover is correct */
    }

    .category-nav .cate-btn:hover {
        background-color: #0b4093 !important;
        /* Navy Blue */
        color: #fff !important;
        border-color: #0b4093 !important;
        opacity: 1 !important;
        /* Override opacity fade */
        text-decoration: none;
    }

    /* -----------------------------------------------------------------
   Top Page Accordion Styles (Agent Update)
   ----------------------------------------------------------------- */

    /* consolidated above */

    /* Blue Circle */
    .top-cate-title::after {
        content: "";
        position: absolute;
        top: 50%;
        right: 15px;
        /* Aligned with band padding */
        transform: translateY(-50%);
        width: 24px;
        height: 24px;
        background-color: #00559a;
        /* Corporate Blue */
        border-radius: 50%;
        transition: transform 0.3s ease;
    }

    /* White Arrow (Down) */
    .top-cate-title::before {
        content: "";
        position: absolute;
        top: 50%;
        right: 23px;
        /* 15px padding + 8px to center in 24px circle */
        width: 6px;
        height: 6px;
        border-right: 2px solid #fff;
        border-bottom: 2px solid #fff;
        transform: translateY(-70%) rotate(45deg);
        z-index: 2;
        transition: transform 0.3s ease;
        pointer-events: none;
    }

    /* Open State (Arrow Up) */
    .top-cate-title.is-open::before {
        transform: translateY(-30%) rotate(225deg);
    }

    /* Wrapper for Accordion to preserve Flex layout of inner container */
    .category-nav-wrapper {
        display: none;
    }

    /* Ensure category-nav acts as flex container */
    .product-categories-wrapper .category-nav {
        display: flex;
        /* was display: none in previous version */
    }

    /* -----------------------------------------------------------------
       Footer Sub-Category Styles (Agent Update)
       ----------------------------------------------------------------- */
    /* 1. Main Titles (Business, Product, Tech) Size Up */
    .layout-footer_nav .layout-footer_nav_inner>ul>li {
        font-size: 1.6rem !important;
        /* Size up from 1.4em (approx 14px) to 1.6rem (16px) */
    }

    /* 2. Sub-Category Titles (Search by Field, etc.) */
    /* Match the style of the original Main Titles (Bold + 14px) */
    .footer-sub-cat {
        font-weight: bold !important;
        font-size: 1.4rem !important;
        /* Match original main title size (approx 14px) */
        margin-top: 15px;
        margin-bottom: 5px;
        list-style: none;
        color: #1E52A6 !important;
        /* Updated to site blue */
    }

    /* Remove top margin for initial items to align with content of other columns */
    .layout-footer_nav_inner .footer-sub-cat:first-child {
        margin-top: 0 !important;
    }

    /* -----------------------------------------------------------------
       Footer Product List Columns (Agent Update)
       ----------------------------------------------------------------- */
    @media (min-width: 768px) {

        /* Target the Product Info list (2nd child) */
        .layout-footer_nav .layout-footer_nav_inner:nth-child(2)>ul>li>ul {
            column-count: 4;
            column-gap: 20px;
            /* Adjust spacing between columns */
            width: 100%;
            /* Ensure it fills available width */
        }

        /* Force column break before the specific section */
        .u-break-column {
            break-before: column;
            margin-top: 0 !important;
            /* Reset top margin if breaking to top of column */
        }
    }

    /* -----------------------------------------------------------------
       Product Page Category Title (Agent Update)
       ----------------------------------------------------------------- */
    .product-nav-section {
        padding: 20px 20px 5px;
        margin-bottom: 10px;
    }

    .product-nav-section.is-field {
        background-color: #DEF7E5;
    }

    .product-nav-section.is-product {
        background-color: #D6F1FA;
    }

    .product-nav-section.is-item {
        background-color: #D6E3F9;
    }

    .product-nav-section.is-option {
        background-color: #E5E5E5;
        margin-bottom: 50px;
    }

    .product-cate-title {
        font-size: 1.8rem;
        font-weight: bold;
        color: #00559a;
        border-bottom: 2px solid #00559a;
        padding-bottom: 10px;
        margin-bottom: 20px;
        margin-top: 40px;
        line-height: 1.4;
    }

    .product-nav-section .product-cate-title {
        margin-top: 0;
    }

    .cate-sub-text {
        font-size: 1.4rem;
        font-weight: normal;
        color: #333;
        margin-left: 10px;
    }

    .product-cate-title:first-child {
        margin-top: 0;
    }

    /* -----------------------------------------------------------------
       Product Page Title (Blue Bar - Agent Update)
       ----------------------------------------------------------------- */
    .product-detail-title {
        font-size: 2.4rem;
        font-weight: bold;
        color: #333;
        padding-left: 15px;
        border-left: 8px solid #00559a;
        margin-bottom: 5px;
        /* Reverted to 5px */
        margin-top: 50px;
        /* Reverted to 50px */
        line-height: 1.2;
        clear: both;
    }

    .product-detail-option-title {
        font-size: 2.4rem;
        font-weight: bold;
        color: #333;
        padding-left: 15px;
        border-left: 8px solid #999;
        margin-bottom: 5px;
        margin-top: 80px;
        line-height: 1.2;
        clear: both;
    }

    /* 5-Column Layout for Category Buttons */
    .category-nav.is-5col {
        margin-top: 0;
        /* Reset space above category buttons */
        margin-bottom: 30px;
        /* Standard space below */
    }

    .category-nav.is-5col .cate-btn {
        width: calc((100% - 40px) / 5);
        /* 10px gap * 4 = 40px */
    }

    @media (max-width: 767px) {
        .product-detail-title {
            font-size: 2.0rem;
            border-left-width: 6px;
            margin-top: 20px;
        }

        .product-detail-option-title {
            font-size: 2.0rem;
            border-left-width: 6px;
            margin-top: 40px;
        }

        .category-nav.is-5col .cate-btn {
            width: calc(50% - 5px);
            /* Reuse 2-col logic */
            /* Assuming gap is handled globally if flexible, otherwise margin reset might be needed */
        }
    }

    /* -----------------------------------------------------------------
       Agent Update: Green Theme for Major Category Nav
       Target: .category-nav.is-5col (Top level categories)
       ----------------------------------------------------------------- */
    .category-nav.is-main-nav .cate-btn {
        border-color: #4EBA74;
        color: #333;
    }

    .category-nav.is-main-nav .cate-btn.is-active {
        background-color: #4EBA74 !important;
        border-color: #4EBA74 !important;
        color: #fff !important;
    }

    .category-nav.is-main-nav .cate-btn:hover {
        background-color: #4EBA74 !important;
        border-color: #4EBA74 !important;
        color: #fff !important;
        opacity: 0.8 !important;
    }

    .category-nav.is-5col .cate-btn {
        border-color: #4EBA74;
        color: #333;
    }

    /* -----------------------------------------------------------------
       Agent Update: Reduce page title bottom margin for theme-border pages
       Target: Product Category Pages
       Request: Reduce spacing between title and content by half.
       ----------------------------------------------------------------- */
    .page-title.theme-border {
        margin-bottom: 60px !important;
    }

    @media (max-width: 767px) {
        .page-title.theme-border {
            margin-bottom: 30px !important;
        }
    }

    /* -----------------------------------------------------------------
   Agent Update: Scroll Margin for #cate-nav
   Purpose: Prevent category link header overlap
   ----------------------------------------------------------------- */
    #cate-nav {
        scroll-margin-top: 150px;
    }

    @media (max-width: 767px) {
        #cate-nav {
            scroll-margin-top: 200px;
        }
    }

    /* -----------------------------------------------------------------
   Contact Page Grid Layout (Agent Update)
   ----------------------------------------------------------------- */
    .contact-list {
        display: flex;
        flex-wrap: wrap;
        gap: 30px;
        margin-bottom: 50px;
    }

    .contact-item {
        width: calc(50% - 15px);
        border: 1px solid #ddd;
        padding: 30px;
        box-sizing: border-box;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        background-color: #fff;
    }

    .contact-item .contact-item-title {
        font-size: 1.8rem;
        font-weight: bold;
        color: #1e52a6;
        /* Matched to site blue */
        margin-bottom: 20px;
        border-bottom: none;
        line-height: 1.4;
    }

    .contact-item-btn {
        text-align: center;
        margin-top: 20px;
    }

    .contact-item-btn .btn {
        display: flex;
        align-items: center;
        justify-content: flex-start;
        padding: 15px 20px;
        background-color: #0b4093;
        color: #fff;
        text-decoration: none;
        font-weight: bold;
        border-radius: 4px;
        transition: opacity 0.3s;
        font-size: 1.5rem;
        box-sizing: border-box;
        line-height: 1.4;
    }

    .contact-item-btn .btn:hover {
        opacity: 0.8;
        text-decoration: none;
        color: #fff;
    }

    .contact-item-btn .btn::before {
        content: "›";
        margin-right: 10px;
        font-size: 1.5em;
        /* Slightly larger arrow */
        font-weight: bold;
        line-height: 1;
        margin-top: -2px;
        /* Visual adjustment */
    }

    @media (max-width: 767px) {
        .contact-item {
            width: 100%;
            margin-bottom: 20px;
        }
    }

    /* -----------------------------------------------------------------
   Top Page Product Image Grid (Agent Update)
   ----------------------------------------------------------------- */
    .index-product-grid {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        gap: 20px;
        /* Space between items */
        margin-bottom: 25px;
        max-width: 1200px;
        margin-left: auto;
        margin-right: auto;
        padding: 0 5%;
    }

    @media (min-width: 768px) {
        .index-product-grid {
            padding: 0;
            /* Remove side padding on desktop if centered with max-width */
        }
    }

    .index-product-item {
        width: calc((100% - 40px) / 3);
        /* 3 columns */
        margin-bottom: 20px;
    }

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

    @media (max-width: 767px) {
        .index-product-item {
            width: calc((100% - 20px) / 2);
            /* 2 columns on mobile */
        }
    }

    @media (max-width: 480px) {
        .index-product-item {
            width: 100%;
            /* 1 column on very small screens */
        }
    }



    /* -----------------------------------------------------------------
   Back Button Style
   ----------------------------------------------------------------- */
    .btn-back-container {
        margin: 0;
    }

    .product-nav-links {
        padding: 0;
        margin-bottom: 20px;
        position: relative;
        z-index: 5;
    }

    .product-nav-links .wrap {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 0 30px;
        /* Align with title and section */
    }

    @media (max-width: 767px) {
        .product-nav-links .wrap {
            padding: 0 15px;
        }
    }

    .btn-back {
        display: inline-flex;
        align-items: center;
        color: #1E52A6;
        font-weight: bold;
        font-size: 1.6rem;
        cursor: pointer;
        background: none;
        border: none;
        padding: 0;
        transition: opacity 0.3s;
        text-decoration: none;
    }

    .btn-back:hover {
        opacity: 0.7;
        text-decoration: none;
    }

    .btn-back::before {
        content: "\e900";
        font-family: 'icomoon' !important;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 24px;
        height: 24px;
        background-color: #00559a;
        color: #fff;
        border-radius: 50%;
        font-size: 1.0rem;
        margin-right: 12px;
        transform: rotate(180deg);
    }

    @media (max-width: 767px) {
        .btn-back-container {
            margin: 0px 0 20px;
        }

        .btn-back {
            font-size: 1.4rem;
        }

        .btn-back::before {
            width: 20px;
            height: 20px;
            font-size: 0.8rem;
            margin-right: 8px;
        }
    }

    /* Adjust page-title margin for product pages to bring back button closer */
    .layout-content>.page-title.theme-border {
        margin-bottom: 10px !important;
    }

    @media (max-width: 767px) {
        .layout-content>.page-title.theme-border {
            margin-bottom: 10px !important;
        }
    }

    /* -----------------------------------------------------------------
       Footer Line Spacing Adjustment (Reduced to 70% for PC)
       ----------------------------------------------------------------- */
    @media (min-width: 768px) {

        /* Reduce gap between link items */
        .layout-footer_nav ul>li>ul>li {
            margin-bottom: 10px !important;
            /* 70% of 15px */
        }

        /* Reduce gap around sub-category headers */
        .footer-sub-cat {
            margin-top: 0 !important;
            /* Align with other columns' content */
            margin-bottom: 3px !important;
            /* 70% of 5px */
        }

        /* Reduce gap between main category title and its list for all columns */
        .layout-footer_nav ul>li>ul {
            margin-top: 17px !important;
            /* 70% of 25px */
        }
    }

    /* -----------------------------------------------------------------
       Agent Update: Legibility for Recruit Page Header
       ----------------------------------------------------------------- */
    .recruit-header-bg h1,
    .showroom-header-bg h1 {
        text-shadow: 0 0 10px #fff, 0 0 20px #fff !important;
        /* Stronger white glow */
    }

    .recruit-header-bg .breadcrumbs ol li,
    .recruit-header-bg .breadcrumbs ol li a,
    .recruit-header-bg .breadcrumbs ol li span,
    .showroom-header-bg .breadcrumbs ol li,
    .showroom-header-bg .breadcrumbs ol li a,
    .showroom-header-bg .breadcrumbs ol li span {
        text-shadow: 0 0 5px #000, 0 0 10px #000 !important;
        /* Diffuse black glow/halo */
    }

    /* -----------------------------------------------------------------
       Agent Update: Catalog Link Relocation to Top Right
       ----------------------------------------------------------------- */
    @media (min-width: 768px) {
        .product-title-area {
            position: relative;
            min-height: 40px;
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
        }

        .product-title-area .catalogLink {
            position: absolute;
            top: -65px;
            /* Move up to align with/just below the title divider line */
            right: 0;
            margin: 0;
            z-index: 10;
        }

        /* Ensure formating text doesn't hit the link */
        .product-title-area .format {
            margin-top: 5px;
        }
    }

    @media (max-width: 767px) {
        .product-title-area .catalogLink {
            margin-top: 15px;
        }
    }
