/* ベーススタイル */

/* 症状別リンクセクション */
.symptom-links-section {
    margin: 30px 0;
    padding: 25px;
    background: linear-gradient(135deg, #f0fff0 0%, #e6ffe6 100%);
    border-radius: 15px;
    box-shadow: 0 4px 15px rgba(46, 139, 87, 0.1);
}

.symptom-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 20px;
    margin-top: 20px;
}

.symptom-card {
    display: block;
    padding: 20px;
    background: white;
    border-radius: 12px;
    text-decoration: none;
    color: inherit;
    box-shadow: 0 3px 10px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
    text-align: center;
    border: 2px solid transparent;
}

.symptom-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(46, 139, 87, 0.2);
    border-color: #2E8B57;
}

.symptom-card.all-products {
    background: linear-gradient(135deg, #2E8B57 0%, #20B2AA 100%);
    color: white;
}

.symptom-icon {
    font-size: 40px;
    margin-bottom: 10px;
}

.symptom-title {
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 5px;
    color: #2E8B57;
}

.symptom-card.all-products .symptom-title {
    color: white;
}

.symptom-desc {
    font-size: 14px;
    color: #666;
}

.symptom-card.all-products .symptom-desc {
    color: #f0f0f0;
}

@media (max-width: 768px) {
    .symptom-grid {
        grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
        gap: 15px;
    }
    
    .symptom-card {
        padding: 15px 10px;
    }
    
    .symptom-icon {
        font-size: 30px;
    }
    
    .symptom-title {
        font-size: 14px;
    }
    
    .symptom-desc {
        font-size: 12px;
    }
}

/* フッターリンクセクション */
.footer-links {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 30px;
    margin: 30px 0;
    padding: 30px 20px;
    background: linear-gradient(135deg, #2E8B57 0%, #20B2AA 100%);
    border-radius: 15px;
    color: white;
}

.footer-link-group h4 {
    font-size: 16px;
    font-weight: bold;
    margin-bottom: 15px;
    color: #F0FFFF;
    border-bottom: 2px solid rgba(240, 255, 255, 0.3);
    padding-bottom: 8px;
}

.footer-category-links {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.footer-category-links a {
    color: #E0F0E0;
    text-decoration: none;
    font-size: 14px;
    padding: 5px 0;
    border-left: 3px solid transparent;
    padding-left: 10px;
    transition: all 0.3s ease;
}

.footer-category-links a:hover {
    color: white;
    border-left-color: #F0FFFF;
    padding-left: 15px;
    background-color: rgba(255, 255, 255, 0.1);
    border-radius: 5px;
}

@media (max-width: 768px) {
    .footer-links {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
        padding: 20px 15px;
    }
    
    .footer-link-group h4 {
        font-size: 14px;
        margin-bottom: 10px;
    }
    
    .footer-category-links a {
        font-size: 12px;
    }
}

@media (max-width: 480px) {
    .footer-links {
        grid-template-columns: 1fr;
        gap: 15px;
    }
}

/* ベーススタイル */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Noto Sans CJK JP', sans-serif;
    line-height: 1.6;
    color: #2c1810;
    background-color: #f5f0e8;
    padding-bottom: 80px; /* ナビゲーション用の余白 */
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    background: #F0FFFF;
    min-height: 100vh;
    box-shadow: 0 0 20px rgba(70, 130, 180, 0.1);
}

/* モバイル向けの設定 */
@media (max-width: 768px) {
    .container {
        max-width: 480px;
    }
}

/* ヘッダースタイル */
header {
    background: #4682B4;
    color: #F0FFFF;
    padding: 20px;
    text-align: center;
    position: relative;
    border-bottom: 2px solid #20B2AA;
    box-shadow: 0 2px 8px rgba(70, 130, 180, 0.3);
}

/* PC向けヘッダー調整 */
@media (min-width: 769px) {
    header {
        padding: 30px 40px;
    }
    
    .page-title {
        font-size: 24px;
    }
    
    .subtitle {
        font-size: 18px;
    }
}

.back-button {
    position: absolute;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
    color: #DAA520;
    text-decoration: none;
    font-size: 20px;
    font-weight: normal;
    padding: 0;
    margin: 0;
    border-radius: 5px;
    transition: background-color 0.3s;
    border: 2px solid #DAA520;
    background: #3A6B9C;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    box-sizing: border-box;
    line-height: 1;
}

.back-button:hover {
    background-color: rgba(218, 165, 32, 0.2);
    box-shadow: 0 0 10px rgba(218, 165, 32, 0.4);
}

.page-title {
    font-size: 18px;
    font-weight: bold;
}

.logo {
    font-size: 24px;
    font-weight: bold;
    margin-bottom: 10px;
}

.subtitle {
    font-size: 14px;
    opacity: 0.9;
}

/* メインナビゲーション */
.main-nav {
    background: #5F9EA0;
    padding: 0;
    border-top: 1px solid #20B2AA;
    border-bottom: 1px solid #20B2AA;
}

/* PC向けメインナビゲーション */
@media (min-width: 769px) {
    .main-nav {
        display: flex;
        justify-content: center;
        padding: 0;
    }
    
    .nav-item {
        flex: 1;
        max-width: 200px;
        text-align: center;
        border-right: 1px solid rgba(32, 178, 170, 0.3);
    }
    
    .nav-item:last-child {
        border-right: none;
    }
}

.nav-item {
    display: block;
    padding: 15px 20px;
    color: #F0FFFF;
    text-decoration: none;
    border-bottom: 1px solid rgba(32, 178, 170, 0.3);
    font-weight: 500;
    transition: all 0.3s;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
}

.nav-item:hover {
    background-color: rgba(32, 178, 170, 0.2);
    color: #20B2AA;
    transform: translateX(5px);
}

.nav-item:last-child {
    border-bottom: none;
}

/* コンテンツエリア */
.content {
    padding: 20px;
    padding-bottom: 100px; /* 下部ナビゲーション用の余白 */
}

/* PC向けコンテンツ調整 */
@media (min-width: 769px) {
    .content {
        padding: 40px;
        padding-bottom: 40px; /* PCでは下部ナビなし */
    }
}

/* ハイライトセクション */
.highlight-section {
    background: #FFE4E1;
    color: #8B0000;
    padding: 20px;
    margin: 20px;
    border-radius: 15px;
    text-align: center;
    border: 2px solid #DC143C;
    box-shadow: 0 4px 15px rgba(220, 20, 60, 0.3);
}

/* 営業日表示セクション */
.business-hours-alert {
    background: #FFF8DC;
    border: 2px solid #FFB347;
    border-radius: 15px;
    padding: 20px;
    margin: 20px;
    display: flex;
    align-items: flex-start;
    gap: 15px;
    box-shadow: 0 4px 15px rgba(255, 179, 71, 0.3);
    animation: fadeInPulse 1s ease-in-out;
}

.alert-icon {
    font-size: 24px;
    color: #FF8C00;
    margin-top: 2px;
}

.alert-content {
    flex: 1;
}

.alert-title {
    font-size: 16px;
    font-weight: bold;
    color: #D2691E;
    margin-bottom: 8px;
}

.alert-text {
    font-size: 14px;
    color: #8B4513;
    margin-bottom: 5px;
    line-height: 1.4;
}

.next-business-day {
    font-size: 13px;
    color: #FF6347;
    font-weight: bold;
}

.business-hours-open {
    background: #E0FFE0;
    border-color: #90EE90;
    box-shadow: 0 4px 15px rgba(144, 238, 144, 0.3);
}

.business-hours-open .alert-icon {
    color: #32CD32;
}

.business-hours-open .alert-title {
    color: #228B22;
}

.business-hours-open .alert-text {
    color: #2F4F4F;
}

@keyframes fadeInPulse {
    0% {
        opacity: 0;
        transform: scale(0.95);
    }
    50% {
        opacity: 1;
        transform: scale(1.02);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

/* PC向けハイライトセクション調整 */
@media (min-width: 769px) {
    .highlight-section {
        padding: 30px;
        margin: 40px;
        max-width: 800px;
        margin-left: auto;
        margin-right: auto;
    }
    
    .highlight-title {
        font-size: 24px;
    }
    
    .highlight-text {
        font-size: 16px;
    }
    
    .business-hours-alert {
        max-width: 800px;
        margin: 40px auto;
        padding: 25px;
    }
    
    .alert-title {
        font-size: 18px;
    }
    
    .alert-text {
        font-size: 16px;
    }
}

.highlight-title {
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 10px;
    color: #DC143C;
}

.highlight-section .highlight-text {
    font-size: 14px;
    line-height: 1.5;
    color: #8B0000;
    text-shadow: 1px 1px 2px rgba(220, 20, 60, 0.3);
    font-weight: 500;
}

/* 商品セクション */
.product-section {
    padding: 20px;
}

/* PC向け商品レイアウト */
@media (min-width: 769px) {
    .product-section {
        padding: 40px;
    }
    
    .product-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
        gap: 30px;
        margin-top: 20px;
    }
}

.section-title {
    font-size: 20px;
    font-weight: bold;
    color: #228B22;
    margin-bottom: 15px;
    text-align: center;
    text-shadow: 1px 1px 2px rgba(32, 178, 170, 0.4);
    border-bottom: 2px solid #20B2AA;
    padding-bottom: 8px;
    margin-bottom: 20px;
}

.product-card {
    background: #F0FFF0;
    border: 2px solid #5F9EA0;
    border-radius: 12px;
    padding: 15px;
    margin-bottom: 15px;
    box-shadow: 0 4px 8px rgba(95, 158, 160, 0.2);
    border-top: 3px solid #20B2AA;
}

/* PC向け商品カード調整 */
@media (min-width: 769px) {
    .product-card {
        padding: 25px;
        margin-bottom: 0; /* グリッドレイアウトでマージン不要 */
    }
}

.product-name {
    font-size: 16px;
    font-weight: bold;
    color: #2F4F4F;
    margin-bottom: 8px;
    text-shadow: 1px 1px 2px rgba(32, 178, 170, 0.2);
}

.product-price {
    color: #228B22;
    font-weight: bold;
    font-size: 18px;
    margin-bottom: 8px;
    text-shadow: 1px 1px 2px rgba(32, 178, 170, 0.3);
}

.product-description {
    font-size: 14px;
    color: #2F4F4F;
    margin-bottom: 10px;
    line-height: 1.6;
}

/* 連絡先セクション */
.contact-section {
    background: #E6F3FF;
    padding: 20px;
    margin: 20px 0;
    border: 2px solid #5F9EA0;
    border-radius: 15px;
    box-shadow: 0 4px 8px rgba(70, 130, 180, 0.2);
}

/* PC向け連絡先セクション調整 */
@media (min-width: 769px) {
    .contact-section {
        padding: 30px;
        margin: 40px 0;
    }
    
    .contact-card {
        max-width: 600px;
        margin: 0 auto;
        padding: 30px;
    }
}

.contact-info {
    text-align: center;
    margin-bottom: 15px;
}

.contact-title {
    font-size: 18px;
    font-weight: bold;
    color: #4682B4;
    margin-bottom: 10px;
    text-shadow: 1px 1px 2px rgba(70, 130, 180, 0.3);
}

.phone {
    font-size: 20px;
    color: #228B22;
    font-weight: bold;
    margin-bottom: 5px;
    text-shadow: 1px 1px 2px rgba(32, 178, 170, 0.5);
}

.hours {
    font-size: 14px;
    color: #2F4F4F;
    font-weight: 500;
}

/* ボタンスタイル */
.order-button {
    display: block;
    background: #4682B4;
    color: #F0FFFF;
    padding: 15px 20px;
    text-align: center;
    text-decoration: none;
    border-radius: 12px;
    margin: 20px;
    font-weight: bold;
    font-size: 16px;
    transition: all 0.3s;
    border: 2px solid #20B2AA;
    box-shadow: 0 4px 8px rgba(70, 130, 180, 0.3);
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
}

/* PC向けボタン調整 */
@media (min-width: 769px) {
    .order-button {
        max-width: 300px;
        margin: 40px auto;
        padding: 20px 30px;
        font-size: 18px;
    }
}

.order-button:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 12px rgba(70, 130, 180, 0.4);
    background: #5F9EA0;
}

/* アクションボタン（店舗案内・ご相談・ご注文） */
.action-button {
    display: block;
    background: #4682B4;
    color: #F0FFFF;
    padding: 15px 20px;
    text-align: center;
    text-decoration: none;
    border-radius: 12px;
    margin: 20px;
    font-weight: bold;
    font-size: 16px;
    transition: all 0.3s;
    border: 2px solid #20B2AA;
    box-shadow: 0 4px 8px rgba(70, 130, 180, 0.3);
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
}

.action-button:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 12px rgba(70, 130, 180, 0.4);
    background: #5F9EA0;
}

/* 店舗案内ボタン */
.store-button {
    background: #4682B4;
    border-color: #20B2AA;
}

.store-button:hover {
    background: #5F9EA0;
}

/* ご相談ボタン */
.consultation-button {
    background: #32CD32;
    border-color: #228B22;
}

.consultation-button:hover {
    background: #228B22;
}

/* ご注文ボタン */
.order-action-button {
    background: #FF6347;
    border-color: #DC143C;
}

.order-action-button:hover {
    background: #DC143C;
}

/* 横並びアクションボタン用コンテナ */
.action-buttons-container {
    display: flex;
    gap: 10px;
    margin: 20px;
}

.action-buttons-container .action-button {
    flex: 1;
    margin: 0;
    text-align: center;
}

/* フッター */
footer {
    background: #4682B4;
    color: #F0FFFF;
    padding: 20px;
    text-align: center;
    font-size: 12px;
    border-top: 2px solid #20B2AA;
    box-shadow: 0 -2px 8px rgba(70, 130, 180, 0.3);
}

.footer-text {
    margin-bottom: 10px;
}

/* 下部ナビゲーション */
nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: #4682B4;
    border-top: 2px solid #20B2AA;
    display: flex;
    max-width: 480px;
    margin: 0 auto;
    z-index: 1000;
    box-shadow: 0 -2px 8px rgba(70, 130, 180, 0.4);
    justify-content: center;
}

/* 上部ナビゲーション（PC版のみ） */
.nav-top {
    display: none; /* モバイルでは非表示 */
}

/* PC向けナビゲーション設定 */
@media (min-width: 769px) {
    /* 上部ナビゲーション（PC版で表示） */
    .nav-top {
        display: flex !important;
        position: static;
        background: #4682B4;
        border-bottom: 2px solid #20B2AA;
        border-top: none;
        max-width: 1200px;
        margin: 0 auto 20px auto;
        z-index: 1000;
        box-shadow: 0 2px 8px rgba(70, 130, 180, 0.4);
        justify-content: center;
    }
    
    /* 下部ナビゲーション（PC版ではフッター上の静的な位置） */
    nav:not(.nav-top) {
        position: static;
        bottom: auto;
        top: auto;
        max-width: 1200px;
        box-shadow: 0 2px 8px rgba(70, 130, 180, 0.4);
        border-top: 2px solid #20B2AA;
        border-bottom: none;
        margin: 20px auto 0 auto;
        justify-content: center;
    }
    
    /* PC向けナビゲーション項目の均等配置 */
    nav .nav-item {
        flex: 1;
        max-width: 200px;
        padding: 18px 20px;
        font-size: 16px;
        font-weight: 500;
        text-align: center;
        transition: all 0.3s ease;
    }
    
    nav .nav-item:hover {
        background: rgba(218, 165, 32, 0.3);
        transform: translateY(-2px);
        color: #DAA520;
    }
    
    body {
        padding-bottom: 0;
        padding-top: 0;
    }
    
    .container {
        margin-top: 0;
    }
}

nav .nav-item {
    flex: 1;
    padding: 15px 10px;
    text-align: center;
    color: #FFF8DC;
    text-decoration: none;
    font-size: 12px;
    border-right: 1px solid rgba(218, 165, 32, 0.3);
    border-bottom: none;
    transition: all 0.3s;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}

nav .nav-item:last-child {
    border-right: none;
}

nav .nav-item.active {
    color: #DAA520;
    font-weight: bold;
    background: rgba(218, 165, 32, 0.2);
}

/* その他メニューのスタイル */
.menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1000;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 20px;
}

.menu-content {
    background: white;
    border-radius: 12px;
    width: 90%;
    max-width: 400px;
    max-height: 70vh;
    overflow-y: auto;
}

.menu-header {
    background: #f7fafc;
    padding: 15px 20px;
    border-bottom: 1px solid #e2e8f0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-radius: 12px 12px 0 0;
}

.menu-header span {
    font-weight: bold;
    color: #2d3748;
}

.close-btn {
    background: none;
    border: none;
    font-size: 24px;
    color: #718096;
    cursor: pointer;
    padding: 0;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.close-btn:hover {
    color: #4a5568;
}

.menu-items {
    padding: 10px 0;
}

.menu-item-link {
    display: flex;
    align-items: center;
    padding: 15px 20px;
    text-decoration: none;
    color: #2d3748;
    border-bottom: 1px solid #f7fafc;
}

.menu-item-link:hover {
    background: #f7fafc;
}

.menu-icon {
    font-size: 20px;
    margin-right: 15px;
    width: 30px;
    text-align: center;
}

.menu-text {
    font-size: 16px;
    font-weight: 500;
}

/* 商品詳細ページ */
.product-detail {
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 20px;
    margin-bottom: 20px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.product-header {
    text-align: center;
    margin-bottom: 20px;
}

.ingredients-table {
    width: 100%;
    border-collapse: collapse;
    margin: 15px 0;
}

.ingredients-table th,
.ingredients-table td {
    padding: 8px 10px;
    text-align: left;
    border: 1px solid #e2e8f0;
    font-size: 14px;
}

.ingredients-table th {
    background: #f7fafc;
    font-weight: bold;
    color: #2d3748;
}

.usage-info {
    background: #f0fff4;
    border: 1px solid #9ae6b4;
    border-radius: 8px;
    padding: 15px;
    margin: 15px 0;
}

.usage-title {
    font-weight: bold;
    color: #2f855a;
    margin-bottom: 8px;
}

.dosage-info {
    background: #fef5e7;
    border: 1px solid #f6e05e;
    border-radius: 8px;
    padding: 15px;
    margin: 15px 0;
}

.dosage-title {
    font-weight: bold;
    color: #d69e2e;
    margin-bottom: 8px;
}

/* 連絡先カード */
.contact-card {
    background: #E6F3FF;
    border: 2px solid #5F9EA0;
    border-radius: 15px;
    padding: 15px;
    margin-bottom: 20px;
    box-shadow: 0 4px 8px rgba(70, 130, 180, 0.2);
}

.store-name {
    font-size: 20px;
    font-weight: bold;
    color: #8B0000;
    text-align: center;
    margin-bottom: 8px;
    padding-bottom: 6px;
    border-bottom: 2px solid #DAA520;
    text-shadow: 1px 1px 2px rgba(139, 69, 19, 0.3);
}

.contact-item {
    display: flex;
    align-items: center;
    padding: 4px 0;
    border-bottom: 1px solid #f7fafc;
}

.contact-item:last-child {
    border-bottom: none;
}

.contact-icon {
    width: 36px;
    height: 36px;
    background: #e2e8f0;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 12px;
    font-size: 16px;
}

.contact-info {
    flex: 1;
}

.contact-label {
    font-size: 12px;
    color: #4a5568;
    margin-bottom: 1px;
}

.contact-value {
    font-size: 16px;
    font-weight: bold;
    color: #2d3748;
}

.phone-link,
.email-link {
    color: #3182ce;
    text-decoration: none;
}

.email-link {
    word-break: break-all;
}

/* 営業時間テーブル */
.hours-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 10px;
}

.hours-table th,
.hours-table td {
    padding: 10px;
    text-align: center;
    border: 1px solid #e2e8f0;
}

.hours-table th {
    background: #f7fafc;
    font-weight: bold;
    color: #2d3748;
}

.hours-table .holiday {
    color: #e53e3e;
}

.hours-table .open {
    color: #38a169;
    font-weight: bold;
}

/* お知らせカード */
.notice-card {
    background: linear-gradient(135deg, #fed7d7, #feb2b2);
    border-radius: 10px;
    padding: 20px;
    margin-bottom: 20px;
    border-left: 4px solid #e53e3e;
}

.notice-title {
    font-size: 16px;
    font-weight: bold;
    color: #c53030;
    margin-bottom: 10px;
}

.notice-text {
    font-size: 14px;
    color: #2d3748;
    line-height: 1.5;
}

/* 地図セクション */
.map-section {
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 20px;
    margin-bottom: 20px;
}

.map-placeholder {
    width: 100%;
    height: 200px;
    background: #e2e8f0;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #4a5568;
    font-size: 14px;
    margin-bottom: 15px;
}

.address {
    text-align: center;
    font-size: 14px;
    color: #4a5568;
}

/* Google Maps埋め込み用スタイル */
.map-container {
    width: 100%;
    margin: 15px 0;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(70, 130, 180, 0.2);
    border: 1px solid #B0C4DE;
}

.map-container iframe {
    display: block;
    width: 100%;
    transition: filter 0.3s ease;
}

.map-container:hover iframe {
    filter: brightness(1.05);
}

/* 注文ページ専用スタイル */
.order-section {
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 20px;
    margin-bottom: 20px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.method-item {
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid #f7fafc;
}

.method-item:last-child {
    border-bottom: none;
}

.method-title {
    font-size: 16px;
    font-weight: bold;
    color: #2d3748;
    margin-bottom: 8px;
}

.method-content {
    font-size: 14px;
    color: #4a5568;
    line-height: 1.5;
}

.contact-link {
    color: #3182ce;
    text-decoration: none;
    font-weight: bold;
}

.contact-link:hover {
    text-decoration: underline;
}

.required-info {
    background: #f0f9ff;
    border: 1px solid #bae6fd;
    border-radius: 8px;
    padding: 15px;
}

.required-title {
    font-weight: bold;
    color: #0369a1;
    margin-bottom: 10px;
}

.required-list {
    font-size: 14px;
    color: #374151;
    line-height: 1.6;
}

.payment-method {
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid #f7fafc;
}

.payment-method:last-child {
    border-bottom: none;
}

.payment-title {
    font-size: 16px;
    font-weight: bold;
    color: #2d3748;
    margin-bottom: 10px;
}

.payment-content {
    font-size: 14px;
    color: #4a5568;
    line-height: 1.5;
}

.bank-info {
    background: #f7fafc;
    border-radius: 8px;
    padding: 15px;
    margin: 10px 0;
    border-left: 4px solid #3182ce;
}

.price-highlight {
    color: #e53e3e;
    font-weight: bold;
}

.shipping-info {
    margin-bottom: 15px;
}

.shipping-title {
    font-weight: bold;
    color: #2d3748;
    margin-bottom: 8px;
}

.price-highlight-text {
    color: #e53e3e;
    font-weight: bold;
}

.urgent-notice {
    background: #fff5f5;
    border: 1px solid #feb2b2;
    border-radius: 8px;
    padding: 15px;
    margin-bottom: 20px;
}

.urgent-title {
    color: #c53030;
    font-weight: bold;
    margin-bottom: 8px;
}

/* メニューページ専用スタイル */


.category-section {
    background: white;
    border-radius: 10px;
    margin-bottom: 20px;
    overflow: hidden;
    box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}

.category-header {
    padding: 15px 20px;
    font-size: 16px;
    font-weight: bold;
    color: #2d3748;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: background-color 0.3s;
}





/* カテゴリごとの色分け */
.category-male {
    background: #e3f2fd !important;
    border-left: 4px solid #2196f3;
    color: #1565c0 !important;
    font-weight: bold;
    border: 1px solid #bbdefb;
}

.category-male:hover {
    background: #bbdefb;
    color: #0d47a1;
}

.category-male.active {
    background: #90caf9;
    color: #0d47a1;
}

.category-female {
    background: #fce4ec !important;
    border-left: 4px solid #e91e63;
    color: #ad1457 !important;
    font-weight: bold;
    border: 1px solid #f8bbd9;
}

.category-female:hover {
    background: #f8bbd9;
    color: #880e4f;
}

.category-female.active {
    background: #f48fb1;
    color: #880e4f;
}

.category-herbal {
    background: #e8f5e8 !important;
    border-left: 4px solid #4caf50;
    color: #2e7d32 !important;
    font-weight: bold;
    border: 1px solid #c8e6c9;
}

.category-herbal:hover {
    background: #c8e6c9;
    color: #1b5e20;
}

.category-herbal.active {
    background: #a5d6a7;
    color: #1b5e20;
}

.category-chinese {
    background: #fff3e0 !important;
    border-left: 4px solid #ff9800;
    color: #e65100 !important;
    font-weight: bold;
    border: 1px solid #ffe0b2;
}

.category-chinese:hover {
    background: #ffe0b2;
    color: #bf360c;
}

.category-chinese.active {
    background: #ffcc02;
    color: #e65100;
}

.category-external {
    background: #f3e5f5 !important;
    border-left: 4px solid #9c27b0;
    color: #7b1fa2 !important;
    font-weight: bold;
    border: 1px solid #e1bee7;
}

.category-external:hover {
    background: #e1bee7;
    color: #4a148c;
}

.category-external.active {
    background: #ce93d8;
    color: #4a148c;
}

.category-bezoar {
    background: #fff8e1 !important;
    border-left: 4px solid #ffc107;
    color: #f57f17 !important;
    font-weight: bold;
    border: 1px solid #fff176;
}

.category-bezoar:hover {
    background: #fff176;
    color: #e65100;
}

.category-bezoar.active {
    background: #ffeb3b;
    color: #f57f17;
}

.category-nutrition {
    background: #e0f2f1 !important;
    border-left: 4px solid #009688;
    color: #00695c !important;
    font-weight: bold;
    border: 1px solid #b2dfdb;
}

.category-nutrition:hover {
    background: #b2dfdb;
    color: #004d40;
}

.category-nutrition.active {
    background: #80cbc4;
    color: #004d40;
}

.category-default {
    background: #f7fafc !important;
    border-left: 4px solid #718096;
    color: #2d3748 !important;
    font-weight: bold;
    border: 1px solid #cbd5e0;
}

.category-default:hover {
    background: #edf2f7;
    color: #1a202c;
}

.category-default.active {
    background: #e2e8f0;
    color: #2d3748;
}

.category-featured {
    background: #ffebee !important;
    border-left: 4px solid #d32f2f;
    color: #c62828 !important;
    font-weight: bold;
    border: 1px solid #ffcdd2;
}

.category-featured:hover {
    background: #ffcdd2;
    color: #b71c1c;
}

.category-featured.active {
    background: #ef9a9a;
    color: #b71c1c;
}

/* 新しいカテゴリー用スタイル - 既存スタイルと統一 */
.category-device {
    background: #e8eaf6 !important;
    border-left: 4px solid #3f51b5;
    color: #283593 !important;
    font-weight: bold;
    border: 1px solid #c5cae9;
}

.category-device:hover {
    background: #c5cae9;
    color: #1a237e;
}

.category-device.active {
    background: #9fa8da;
    color: #1a237e;
}

.category-cooking {
    background: #fff8e1 !important;
    border-left: 4px solid #ff8f00;
    color: #e65100 !important;
    font-weight: bold;
    border: 1px solid #ffecb3;
}

.category-cooking:hover {
    background: #ffecb3;
    color: #bf360c;
}

.category-cooking.active {
    background: #ffe082;
    color: #e65100;
}

.category-health {
    background: #e8f5e8 !important;
    border-left: 4px solid #66bb6a;
    color: #2e7d32 !important;
    font-weight: bold;
    border: 1px solid #c8e6c9;
}

.category-health:hover {
    background: #c8e6c9;
    color: #1b5e20;
}

.category-health.active {
    background: #a5d6a7;
    color: #1b5e20;
}

.expand-icon {
    font-size: 14px;
    transition: transform 0.3s;
}

.expand-icon.rotated {
    transform: rotate(180deg);
}

.category-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-out;
}

.category-content.expanded {
    max-height: 1000px;
    transition: max-height 0.5s ease-in;
}

.menu-item {
    border-bottom: 1px solid #f7fafc;
}

.menu-item:last-child {
    border-bottom: none;
}

.menu-link {
    display: block;
    padding: 15px 20px;
    color: #2d3748;
    text-decoration: none;
    transition: background-color 0.3s;
}

.menu-link:hover {
    background: #f7fafc;
}

.menu-description {
    font-size: 12px;
    color: #4a5568;
    margin-top: 5px;
}

/* ==================== 掲載実績ページ ==================== */
.media-section {
    margin: 20px 0;
    padding: 20px;
    background: #F0FFF0;
    border-radius: 8px;
    border: 1px solid #20B2AA;
}

.media-section h2 {
    color: #2F4F4F;
    font-size: 1.5em;
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 2px solid #20B2AA;
}

.media-item {
    margin: 20px 0;
    padding: 15px;
    background: #FFFFFF;
    border-radius: 5px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    border-left: 4px solid #20B2AA;
}

.media-item h3 {
    color: #2F4F4F;
    font-size: 1.2em;
    margin-bottom: 10px;
    font-weight: bold;
}

.media-item .date {
    color: #4682B4;
    font-weight: bold;
    margin-bottom: 10px;
    font-size: 0.9em;
}

.media-item p {
    margin: 8px 0;
    line-height: 1.5;
    color: #2F4F4F;
}

.media-item .note {
    background: #FFE4E1;
    color: #8B0000;
    padding: 8px;
    border-radius: 4px;
    font-size: 0.9em;
    margin-top: 10px;
}

.media-images {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
    margin: 15px 0;
}

.media-images img {
    width: 100%;
    height: auto;
    border-radius: 4px;
    border: 1px solid #20B2AA;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
    transition: transform 0.3s ease;
}

.media-images img:hover {
    transform: scale(1.02);
}

.contact-info {
    background: #E6F3FF;
    padding: 20px;
    border-radius: 8px;
    margin: 20px 0;
    border: 1px solid #4682B4;
}

.contact-info h2 {
    color: #2F4F4F;
    margin-bottom: 15px;
}

.contact-details h3 {
    color: #2F4F4F;
    margin: 10px 0;
}

.trademark {
    font-size: 0.8em;
    color: #666;
    font-style: italic;
}

/* PC表示対応 */
@media screen and (min-width: 769px) {
    .media-images {
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
        gap: 15px;
    }
    
    .media-section {
        margin: 30px 0;
        padding: 30px;
    }
    
    .media-item {
        margin: 30px 0;
        padding: 20px;
    }
    
    .media-item h3 {
        font-size: 1.3em;
    }
}

/* ==================== リスク区分ページ ==================== */
.risk-overview {
    background: #E6F3FF;
    padding: 20px;
    border-radius: 8px;
    margin: 20px 0;
    border: 1px solid #4682B4;
}

.risk-overview h2 {
    color: #2F4F4F;
    margin-bottom: 10px;
}

.risk-category {
    margin: 20px 0;
    padding: 20px;
    background: #FFFFFF;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    border-left: 5px solid #20B2AA;
}

.risk-category h2 {
    color: #2F4F4F;
    font-size: 1.3em;
    margin-bottom: 15px;
    padding-bottom: 10px;
    border-bottom: 2px solid #E0FFE0;
}

.risk-detail h3 {
    color: #4682B4;
    font-size: 1.1em;
    margin: 15px 0 8px 0;
    font-weight: bold;
}

.risk-detail p {
    margin: 8px 0;
    line-height: 1.6;
    color: #2F4F4F;
}

.specialist {
    background: #FFE4E1;
    color: #8B0000;
    padding: 8px;
    border-radius: 4px;
    font-weight: bold;
}

.specialist-multi {
    background: #FFF8DC;
    color: #B8860B;
    padding: 8px;
    border-radius: 4px;
    font-weight: bold;
}

.required {
    background: #FFE4E1;
    color: #8B0000;
    padding: 8px;
    border-radius: 4px;
    font-weight: bold;
}

.effort-required {
    background: #FFF8DC;
    color: #B8860B;
    padding: 8px;
    border-radius: 4px;
    font-weight: bold;
}

.no-requirement {
    background: #F0FFF0;
    color: #228B22;
    padding: 8px;
    border-radius: 4px;
    font-weight: bold;
}

.note {
    background: #F0F8FF;
    color: #4682B4;
    padding: 10px;
    border-radius: 4px;
    font-size: 0.9em;
    margin-top: 5px;
    border-left: 4px solid #4682B4;
}

.consultation-section,
.rescue-system,
.privacy-section,
.complaint-section {
    background: #F0FFF0;
    padding: 20px;
    border-radius: 8px;
    margin: 20px 0;
    border: 1px solid #20B2AA;
}

.consultation-section h2,
.rescue-system h2,
.privacy-section h2,
.complaint-section h2 {
    color: #2F4F4F;
    margin-bottom: 15px;
}

.consultation-note {
    background: #E6F3FF;
    color: #2F4F4F;
    padding: 15px;
    border-radius: 4px;
    font-weight: bold;
    text-align: center;
}

.contact-info-box {
    background: #FFFFFF;
    padding: 15px;
    border-radius: 5px;
    margin: 15px 0;
    border: 1px solid #20B2AA;
}

.contact-info-box h3 {
    color: #2F4F4F;
    margin-bottom: 10px;
}

.contact-info-box p {
    margin: 10px 0;
    line-height: 1.5;
}

.contact-info-box a {
    color: #4682B4;
    text-decoration: none;
}

.contact-info-box a:hover {
    text-decoration: underline;
}

/* PC表示対応 */
@media screen and (min-width: 769px) {
    .risk-category {
        margin: 30px 0;
        padding: 30px;
    }
    
    .risk-category h2 {
        font-size: 1.5em;
    }
    
    .risk-detail h3 {
        font-size: 1.2em;
    }
    
    .consultation-section,
    .rescue-system,
    .privacy-section,
    .complaint-section {
        padding: 30px;
        margin: 30px 0;
    }
}

/* ==================== 共通スタイル - リファクタリング後 ==================== */

/* フォーム関連の共通スタイル */
.form-group {
    margin-bottom: 20px;
}

.form-label {
    display: block;
    font-weight: bold;
    color: #2d3748;
    margin-bottom: 5px;
}

.form-input, .form-textarea, .form-select {
    width: 100%;
    padding: 10px;
    border: 1px solid #cbd5e0;
    border-radius: 5px;
    font-size: 14px;
    box-sizing: border-box;
}

.form-textarea {
    min-height: 100px;
    resize: vertical;
}

.form-radio {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
    margin-top: 5px;
}

.radio-item {
    display: flex;
    align-items: center;
    gap: 5px;
}

/* ボタン共通スタイル */
.submit-button {
    background: linear-gradient(135deg, #32CD32, #228B22);
    color: white;
    padding: 15px 30px;
    border: none;
    border-radius: 8px;
    font-size: 16px;
    font-weight: bold;
    cursor: pointer;
    width: 100%;
    margin-top: 20px;
    box-shadow: 0 4px 15px rgba(50, 205, 50, 0.3);
    transition: all 0.2s ease;
}

.submit-button:hover {
    background: linear-gradient(135deg, #228B22, #006400);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(50, 205, 50, 0.4);
}

.reset-button {
    background: #718096;
    color: white;
    padding: 12px 20px;
    border: none;
    border-radius: 8px;
    font-size: 14px;
    cursor: pointer;
    width: 100%;
    margin-top: 10px;
}

/* 情報ボックス共通スタイル */
.info-box {
    background: #F0F8FF;
    border: 1px solid #4682B4;
    border-radius: 8px;
    padding: 15px;
    margin-bottom: 20px;
}

.info-section {
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 15px;
    margin-bottom: 15px;
}

.info-title {
    font-size: 16px;
    font-weight: bold;
    color: #2d3748;
    margin-bottom: 10px;
    border-bottom: 2px solid #e2e8f0;
    padding-bottom: 5px;
}

.info-content {
    font-size: 14px;
    color: #4a5568;
    line-height: 1.5;
}

/* 店舗情報カード */
.store-info-card {
    background: #F0FFF0;
    border: 2px solid #5F9EA0;
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 20px;
    box-shadow: 0 4px 8px rgba(95, 158, 160, 0.2);
}

.store-info-title {
    font-size: 16px;
    font-weight: bold;
    color: #4682B4;
    margin-bottom: 10px;
    border-bottom: 2px solid #20B2AA;
    padding-bottom: 5px;
}

.store-info-content {
    font-size: 14px;
    color: #2F4F4F;
    line-height: 1.6;
}

/* フォトグリッド */
.photo-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
    margin: 20px 0;
}

@media (min-width: 769px) {
    .photo-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.store-photo {
    text-align: center;
    margin: 20px 0;
}

.store-photo img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(70, 130, 180, 0.3);
}

/* 支払い方法・配送情報 */
.payment-method {
    background: #f0fff4;
    border: 1px solid #68d391;
    margin-bottom: 20px;
    padding: 15px;
    border-radius: 8px;
}

.payment-title {
    color: #276749;
    font-size: 16px;
    font-weight: bold;
    margin-bottom: 10px;
}

.payment-content {
    font-size: 14px;
    line-height: 1.6;
}

.shipping-info {
    background: #fffaf0;
    border: 1px solid #f6ad55;
    margin-bottom: 15px;
    padding: 15px;
    border-radius: 8px;
}

.shipping-title {
    color: #c05621;
    font-weight: bold;
    margin-bottom: 8px;
}

.bank-info {
    background: #f8f9fa;
    border: 1px solid #dee2e6;
    padding: 15px;
    border-radius: 8px;
    margin: 10px 0;
    font-size: 14px;
}

/* 必須情報 */
.required-info {
    background: #ebf8ff;
    border: 1px solid #90cdf4;
    padding: 15px;
    border-radius: 8px;
}

.required-title {
    color: #2c5282;
    font-weight: bold;
    margin-bottom: 10px;
}

.required-list {
    font-size: 14px;
    line-height: 1.6;
}

/* 価格ハイライト */
.price-highlight {
    background: #bee3f8;
    color: #2c5282;
    padding: 2px 6px;
    border-radius: 4px;
    font-weight: bold;
}

.price-highlight-text {
    background: #bee3f8;
    padding: 2px 4px;
    border-radius: 4px;
    font-weight: bold;
}

/* テーブル関連 */
.medical-info-table {
    width: 100%;
    border-collapse: collapse;
    margin: 15px 0;
    font-size: 12px;
}

.medical-info-table th,
.medical-info-table td {
    border: 1px solid #5F9EA0;
    padding: 8px;
    text-align: left;
}

.medical-info-table th {
    background: #E6F3FF;
    font-weight: bold;
    color: #4682B4;
}

/* 場所情報 */
.location-info {
    background: #E6F3FF;
    border: 2px solid #4682B4;
    border-radius: 12px;
    padding: 20px;
    margin: 20px 0;
}

/* ローディングアニメーション */
.loading {
    text-align: center;
    padding: 40px;
    color: #666;
}

.loading::after {
    content: "";
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 3px solid #f3f3f3;
    border-top: 3px solid #3182ce;
    border-radius: 50%;
    animation: spin 1s linear infinite;
    margin-left: 10px;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* カテゴリー関連 */
.category-header {
    background: linear-gradient(135deg, #3182ce, #2c5282);
    color: white;
    padding: 15px 20px;
    border-radius: 10px 10px 0 0;
    font-weight: bold;
    font-size: 16px;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: background 0.3s;
}

.category-header:hover {
    background: linear-gradient(135deg, #2c5282, #2a4a72);
}

.category-header.active {
    background: linear-gradient(135deg, #38a169, #2f855a);
}

.expand-icon {
    transition: transform 0.3s ease;
}

.expand-icon.rotated {
    transform: rotate(180deg);
}

.category-content {
    background: white;
    border: 1px solid #e2e8f0;
    border-top: none;
    border-radius: 0 0 10px 10px;
    overflow: hidden;
    max-height: 0;
    transition: max-height 0.4s ease;
    opacity: 0;
}

.category-content.expanded {
    max-height: 3000px;
    opacity: 1;
    transition: max-height 0.4s ease, opacity 0.3s ease;
}

/* 相談フォーム */
.consultation-form {
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 20px;
    margin-bottom: 20px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.form-title {
    font-size: 18px;
    font-weight: bold;
    color: #2d3748;
    margin-bottom: 15px;
    padding-bottom: 10px;
    border-bottom: 2px solid #4682B4;
}

/* 例文スタイル */
.example {
    font-size: 12px;
    color: #666;
    font-style: italic;
    margin-top: 3px;
}

/* ステータス表示 */
.status {
    padding: 15px;
    border-radius: 8px;
    margin-bottom: 20px;
    font-weight: bold;
}

.success {
    background: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
}

.error {
    background: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
}

/* 特別リンク */
.special-link {
    color: #2c5282;
    text-decoration: none;
    display: block;
    padding: 12px 15px;
    border-bottom: 1px solid rgba(194, 65, 12, 0.2);
    background: white;
    margin-bottom: 8px;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
    cursor: pointer;
}

.special-link:hover {
    background: #f7fafc;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}

.special-link:last-child {
    border-bottom: none;
} 