/* Shared mobile content rules. Desktop styles remain owned by each page. */
.mobile-banner-source { display: none; }
@media (max-width: 1024px) {
    .nav, .nav.scrolled { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
    body .mobile-page-nav { box-sizing: border-box; width: 100%; }
    body .mobile-adapted-hero {
        display: block !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        padding: 0 !important;
        aspect-ratio: auto !important;
        background: #15191f !important;
        overflow: hidden;
    }
    body .mobile-adapted-hero > .mobile-banner-source {
        display: block !important;
        position: relative !important;
        width: 100% !important;
        height: auto !important;
        max-height: none !important;
        object-fit: contain !important;
    }
    body .mobile-adapted-hero > .mobile-banner-old { display: none !important; }
    body .mobile-adapted-hero > .mobile-banner-copy {
        position: relative !important;
        inset: auto !important;
        width: 100% !important;
        max-width: none !important;
        height: auto !important;
        min-height: 0 !important;
        transform: none !important;
        box-sizing: border-box;
        margin: 0 !important;
        padding: 22px 18px !important;
        background: #15191f !important;
    }
    body .mobile-banner-copy h1 { font-size: clamp(26px, 6vw, 34px) !important; line-height: 1.35 !important; }
    body .mobile-banner-copy p { font-size: 14px !important; line-height: 1.8 !important; }
    body .mobile-banner-copy h1, body .mobile-banner-copy p { color: #fff !important; }
    body .has-mobile-page-nav { scroll-padding-top: 64px; }
    body .ab-wrap, body .id-wrap, body .tm-wrap, body .ct-wrap,
    body .ac-wrap, body .pj-wrap, body .pc-wrap, body .jn-wrap {
        box-sizing: border-box;
        max-width: 100% !important;
        padding-left: 18px !important;
        padding-right: 18px !important;
    }
    .pd-rich, .rich-content, .ab-rich-text, .id-rich-text { min-width: 0; overflow-wrap: anywhere; }
    .pd-rich img, .rich-content img, .ab-rich-text img, .id-rich-text img {
        max-width: 100% !important;
        height: auto !important;
    }
    .pd-rich iframe, .rich-content iframe, .pd-rich video, .rich-content video {
        width: 100% !important;
        max-width: 100% !important;
        aspect-ratio: 16 / 9;
        height: auto !important;
    }
    .pd-gallery-slide { object-fit: contain !important; }
    .store-structure-chart { max-width: 100%; box-sizing: border-box; overscroll-behavior-x: contain; }
    .tm-org { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .pc-shop-new-info, .contact-detail, .contact-item-value { min-width: 0; overflow-wrap: anywhere; }
    .ct-form input:not([type=checkbox]):not([type=radio]), .ct-form textarea, .ct-form select {
        box-sizing: border-box; max-width: 100%; font-size: 16px !important;
    }
    .pd-gallery-arrow { min-width: 44px; min-height: 44px; }
}
@media (max-width: 640px) {
    body .ab-intro-grid, body .ct-msg-grid, body .ct-field-row, body .ac-case,
    body .intro-grid, body .contact-grid, body .shop-contact-grid,
    body .pc-shop-grid-new, body .detail-layout {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 24px !important;
    }
    body .pj-grid, body .pc-grid { grid-template-columns: minmax(0, 1fr) !important; }
    body .ab-stats-grid, body .ac-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
    body .pd-meta { grid-template-columns: minmax(0, 1fr); }
    body .pd-meta span { padding: 14px 16px; }
    body .pd-meta strong { overflow-wrap: anywhere; }
    body .pd-rich, body .rich-content { font-size: 15px !important; line-height: 1.9 !important; }
    body .pd-content { padding-bottom: 48px; }
    body .pd-hero h1 { font-size: 30px; overflow-wrap: anywhere; }
    body .pc-shop-new { padding: 18px; gap: 12px; }
    body .gallery-header { flex-wrap: wrap; gap: 12px; }
    body .news-filter, body .pj-tabs, body .ct-contact-tabs { flex-wrap: wrap; gap: 8px; }
    body .news-filter a, body .pj-tab, body .ct-contact-tab { min-height: 44px; }
}
@media (hover: none) {
    .pc-card, .pj-card, .gallery-item, .news-card { transform: none !important; }
}

@media (max-width: 1024px) {
    body .mobile-page-nav {
        gap: 4px;
        height: 52px;
        padding: 4px 16px;
    }
    body .mobile-page-nav .mobile-home-btn,
    body .mobile-page-nav .mobile-back-btn {
        display: inline-flex;
        flex: 0 0 44px;
        align-items: center;
        justify-content: center;
        box-sizing: border-box;
        width: 44px;
        height: 44px;
        padding: 0;
        border: 0;
        border-radius: 6px;
        background: transparent !important;
        color: #263744;
        cursor: pointer;
        text-decoration: none;
    }
    body .mobile-page-nav svg {
        width: 21px;
        height: 21px;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.8;
        stroke-linecap: round;
        stroke-linejoin: round;
    }
    body .mobile-page-nav .mobile-current-page {
        flex: 1;
        max-width: none;
        margin-left: 4px;
        padding-left: 16px;
        border-left: 1px solid #d4d0c9;
        line-height: 20px;
        color: #39352f;
        font-size: 13px;
    }
    body .mobile-page-nav .mobile-current-page::before {
        content: none;
    }
    body .mobile-page-nav a:focus-visible,
    body .mobile-page-nav button:focus-visible {
        outline: 2px solid #0079b5;
        outline-offset: 1px;
    }
}
