/* ============================================
   Food Activity Japan - スタイルシート
   ============================================ */

/* CSS変数定義 */
:root {
    /* ブランドカラー */
    --brand-primary: #f4ba63;
    --brand-secondary: #d97706;
    --brand-gradient: linear-gradient(135deg, #f4ba63 0%, #d97706 100%);
    
    /* テキストカラー */
    --text-primary: #333333;
    --text-secondary: #666666;
    --text-white: #ffffff;
    
    /* 背景カラー */
    --bg: #ffffff;
    
    /* ボーダーカラー */
    --border: #e0e0e0;
    
    /* その他のカラー */
    --color-link: #0066cc;
    --color-link-hover: #0052a3;
    --color-error: #ff0000;
    --color-matcha: #559857;
    --color-matcha-hover: #3b853e;
    --color-press-link: #00CED1; /* 水色 */
    --text-gray: #4d4d4d;
    
    /* 白のrgba値 */
    --white-light: rgba(255, 255, 255, 0.2);
    --white-medium: rgba(255, 255, 255, 0.5);
    --white-heavy: rgba(255, 255, 255, 1.0);

    /* 黒のrgba値 */
    --black-light: rgba(0, 0, 0, 0.1);
    --black-medium: rgba(0, 0, 0, 0.2);
    --black-heavy: rgba(0, 0, 0, 0.3);
    
    /* フォント */
    --font-family: 'Hiragino Sans', 'Noto Sans JP', 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
    --font-size-base: 16px;
    --font-size-sm: 14px;
    --font-size-lg: 18px;
    --line-height-base: 1.8;
    
    /* 見出しフォントサイズ */
    --font-size-h1: 23px;
    --font-size-h2: 20px;
    --font-size-h3: 18px;
    --font-size-h4: 15px;
    --font-size-h5: 12px;
    --font-size-h6: 10px;
    
    /* スペーシング */
    --spacing-xs: 5px;
    --spacing-sm: 10px;
    --spacing-md: 15px;
    --spacing-lg: 20px;
    --spacing-xl: 25px;
    --spacing-xxl: 30px;
    
    /* ボーダー半径 */
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 30px;
    
    /* シャドウ */
    --shadow: 0 4px 15px var(--black-light);
    
    /* ブランドカラーのrgba値 */
    --brand-rgba: rgba(255, 189, 89, 0.3);
    
    /* トランジション */
    --transition: 0.3s ease;
}

/* リセット & ベーススタイル */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* スマホでの横スクロール防止（グローバル） */
html {
    overflow-x: hidden;
    overflow-y: auto;
    width: 100%;
    max-width: 100vw;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
    position: relative;
    height: auto;
}

/* すべての要素が画面からはみ出さないように（グローバル） */
img, video, iframe, embed, object {
    max-width: 100%;
    height: auto;
}

body {
    font-family: var(--font-family);
    font-size: var(--font-size-base);
    line-height: var(--line-height-base);
    color: var(--text-primary);
    background-color: var(--bg);
    font-weight: 300;
    letter-spacing: 0.02em;
    padding-top: 80px; /* ヘッダーの高さ分 */
}

/* スマホではpadding-topを削除（ヘッダーがstickyになるため） */
@media (max-width: 768px) {
    body {
        padding-top: 0;
    }
    
    /* スマホでフッターの住所を非表示 */
    .footer-text p[data-i18n="footer_address"] {
        display: none !important;
    }
}

/* ヘッダー */
.site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    background: var(--brand-gradient);
    box-shadow: var(--shadow);
    z-index: 1000;
    padding: var(--spacing-sm) 0;
    width: 100%;
}

/* スマホではstickyに変更 */
@media (max-width: 768px) {
    .site-header {
        position: sticky;
        top: 0;
    }
}

.header-container {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 20px;
    position: relative;
}

.header-logo h1 {
    font-size: var(--font-size-h4);
    font-weight: 400;
    color: var(--text-white);
    margin: 0;
}

/* ハンバーガーメニューボタン（モバイル用） */
.mobile-menu-toggle {
    display: none;
    background: none;
    border: none;
    color: var(--text-white);
    font-size: 28px; /* h1とh2の中間サイズ、必要に応じて変数化 */
    cursor: pointer;
    padding: 8px;
    min-width: 44px;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    transition: opacity var(--transition);
    flex-shrink: 0;
}

.mobile-menu-toggle:hover {
    opacity: 0.8;
}

.mobile-menu-toggle:active {
    opacity: 0.6;
}

.mobile-menu-toggle span {
    display: block;
    width: 25px;
    height: 3px;
    background: var(--text-white);
    margin: 5px 0;
    transition: all var(--transition);
    border-radius: 2px;
    box-shadow: var(--shadow);
}

.mobile-menu-toggle.active span:nth-child(1) {
    transform: rotate(45deg) translate(8px, 8px);
}

.mobile-menu-toggle.active span:nth-child(2) {
    opacity: 0;
}

.mobile-menu-toggle.active span:nth-child(3) {
    transform: rotate(-45deg) translate(7px, -7px);
}

.header-nav {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 20px;
    margin-right: 140px; /* 言語切り替えのスペースを確保 */
}


.header-logo-wrapper {
    display: flex; /* デスクトップで表示 */
    align-items: center;
}

/* デスクトップで「サービスを見る」ボタンを非表示 */
@media (min-width: 769px) {
    .btn-wrapper a[data-i18n="view_services"] {
        display: none;
    }
}

/* 「サービスを見る」ボタンのフォントサイズ */
.btn-wrapper a[data-i18n="view_services"] {
    font-size: 15px !important;
}

.header-logo-link {
    display: inline-block;
    text-decoration: none;
    transition: transform var(--transition), opacity var(--transition);
    cursor: pointer;
}

.header-logo-link:hover {
    transform: scale(1.05);
    opacity: 0.9;
}

.header-logo-link:active {
    transform: scale(1.02);
}

.header-logo-img {
    width: 50px;
    height: 50px;
    object-fit: contain;
    border: 3px solid var(--white-heavy); /* 白く縁取る */
    border-radius: 50%;
    padding: 2px;
    background: transparent;
}

.header-nav ul {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 25px;
    justify-content: flex-start;
}

.header-nav > ul > li {
    position: relative;
}

.header-nav a {
    color: var(--text-white);
    text-decoration: none;
    font-size: var(--font-size-sm);
    font-weight: 500;
    transition: opacity var(--transition);
    display: block;
    padding: 5px 0;
}

.header-nav a:hover {
    opacity: 0.8;
    text-decoration: underline;
}

/* ドロップダウンメニュー */
/* サービスコンテナ（一つの枠） */
.service-container { width: 100%; max-width: 500px; }
.dropdown { position: relative; }

.dropdown-menu {
    position: absolute;
    top: 100%;
    left: 0;
    background: var(--white-98);
    min-width: 220px;
    box-shadow: var(--shadow);
    border-radius: 8px;
    padding: 6px 0;
    margin-top: 10px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: all var(--transition);
    list-style: none;
    z-index: 1000;
    display: flex;
    flex-direction: row;
    gap: 0;
    row-gap: 0;
}

.dropdown:hover .dropdown-menu {
    visibility: visible;
    transform: translateY(0);
    opacity: 1; /* トランジション用に明示的に指定 */
}

.dropdown-menu li {
    margin: 0;
    padding: 0;
    display: block;
    width: auto;
    line-height: 0;
    flex: 1;
}

.dropdown-menu li + li {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}

.dropdown-menu a {
    color: var(--text-primary);
    padding: 12px var(--spacing-md);
    display: block;
    font-size: var(--font-size-sm);
    transition: all var(--transition);
    text-decoration: none;
    white-space: nowrap;
    line-height: 1.2;
    margin: 0;
}

.dropdown-menu a:hover {
    background: var(--brand-gradient);
    color: var(--text-white);
    text-decoration: none;
    padding-left: 25px;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1), filter 0.4s ease, opacity 0.4s ease;
    filter: brightness(0.98) contrast(1.01) saturate(0.97);
    opacity: 0.98;
}

/* 画像のフェードインアニメーション（ページ読み込み時） */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 0.98;
        transform: translateY(0);
    }
}

/* すべての画像にフェードインアニメーションを適用（ロゴやアイコンを除く） */
img:not(.header-logo-img):not(.news-icon):not(.sns-icon img):not(.footer-sns-link img):not(.trademark-logo):not(.footer-section:first-child img) {
    animation: fadeInUp 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

/* 画像コンテナのホバー効果 */
img:not(.header-logo-img):not(.news-icon):not(.sns-icon img):not(.footer-sns-link img):not(.trademark-logo):not(.footer-section:first-child img) {
    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1), filter 0.4s ease, opacity 0.4s ease;
}

/* 親要素がホバーされた時の画像効果 */
.img-wrapper:hover img:not(.header-logo-img):not(.news-icon):not(.sns-icon img):not(.footer-sns-link img):not(.trademark-logo):not(.footer-section:first-child img),
.card-img:hover img:not(.header-logo-img):not(.news-icon):not(.sns-icon img):not(.footer-sns-link img):not(.trademark-logo):not(.footer-section:first-child img),
.img-responsive:hover img:not(.header-logo-img):not(.news-icon):not(.sns-icon img):not(.footer-sns-link img):not(.trademark-logo):not(.footer-section:first-child img) {
    transform: scale(1.02);
    filter: brightness(1) contrast(1.03) saturate(1);
}

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

/* 言語切り替えボタン - トグルスイッチ風デザイン */
.language-switcher {
    display: flex;
    gap: 0;
    background: rgba(255, 255, 255, 0.95);
    padding: 4px;
    border-radius: 40px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    backdrop-filter: blur(10px);
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1001;
    flex-shrink: 0;
    white-space: nowrap;
    border: 1px solid rgba(255, 157, 10, 0.2);
}

.lang-btn {
    padding: 10px 22px;
    border: none;
    background: transparent;
    color: var(--text-secondary);
    cursor: pointer;
    border-radius: 50px;
    font-size: var(--font-size-base);
    font-weight: 600;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    font-family: var(--font-family);
    position: relative;
    z-index: 1;
    min-width: 80px;
    text-align: center;
}

.lang-btn:hover {
    color: var(--brand-primary);
}

.lang-btn.active {
    background: linear-gradient(135deg, #ff9d0a 0%, #ffbd59 100%);
    color: var(--text-white);
    box-shadow: 0 2px 6px rgba(255, 157, 10, 0.4);
    transform: scale(1.02);
}

/* コンテナ */
.container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 20px;
}

.container-sm {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 20px;
}

.corporate-section .container-sm {
    max-width: 1000px;
}

.contact-section .container-sm,
.contact-section .inner,
.contact-section .inner-lg {
    max-width: 100%;
}

/* サービスページ（sushimakingjapan.html、matchamakingjapan.html）のコンテナサイズ */
body[data-page="sushi"] .sushi-section .container,
body[data-page="matcha"] .matcha-section .container {
    max-width: 1000px;
}

.container-full { width: 100%; padding: 0; }

/* セクション */
.section,
.service-section { padding: 90px 0; } /* パソコン版のセクション間のスペースを広げる（72px → 90px） */
.section + .section { margin-top: 0; }
.mission-section { padding-top: var(--spacing-md); }
.about-section { padding-bottom: var(--spacing-md); }

/* Food Activityとは？セクションのタイトルを中央揃え */
.about-section .heading-category-title {
    text-align: center;
    justify-content: center;
}
.create-eat-section { padding-top: var(--spacing-md); }

.heading-section {
    margin-top: 120px;
    margin-bottom: calc(var(--spacing-md) * -0.5);
}

/* インナー */
.inner { padding: var(--spacing-md) 0; }
.inner-lg { padding: var(--spacing-xl) 0; }
.inner-vertical { display: flex; flex-direction: column; }

/* テキスト配置 */
.text-center { text-align: center; }

/* 見出し - h2スタイルに統一 */
.heading {
    font-size: var(--font-size-h2);
    font-weight: 500;
    color: var(--text-primary);
    margin-top: var(--spacing-lg);
    margin-bottom: var(--spacing-md);
    font-family: var(--font-family);
    letter-spacing: 0.03em;
    line-height: 1.4;
}


/* 会社名の下線を削除 */
.company-name-large { border-bottom: none; }

.heading-block-main {
    text-align: center;
    margin-top: var(--spacing-xl); /* 見出しの手前に余白を追加 */
    margin-bottom: 48px; /* 1.2倍に拡大 */
}

/* 見出しタグの階層的スタイル定義 */
h1 {
    font-size: var(--font-size-h1);
    font-weight: 600;
    color: var(--text-primary);
    font-family: var(--font-family);
    line-height: 1.4;
    margin-bottom: var(--spacing-lg);
}

h2 {
    font-size: var(--font-size-h1); /* パソコン版はh1と同じサイズ（23px） */
    font-weight: 500;
    color: var(--text-primary);
    font-family: var(--font-family);
    letter-spacing: 0.03em;
    line-height: 1.4;
    margin-bottom: var(--spacing-md);
}

h3 {
    font-size: var(--font-size-h3);
    font-weight: 600;
    color: var(--text-primary);
    font-family: var(--font-family);
    line-height: 1.5;
    margin-bottom: var(--spacing-md);
}

h4 {
    font-size: var(--font-size-h4);
    font-weight: 600;
    color: var(--text-primary);
    font-family: var(--font-family);
    line-height: 1.5;
    margin-bottom: var(--spacing-sm);
}

h5 {
    font-size: var(--font-size-h5);
    font-weight: 600;
    color: var(--text-primary);
    font-family: var(--font-family);
    line-height: 1.6;
    margin-bottom: var(--spacing-sm);
}

h6 {
    font-size: var(--font-size-h6);
    font-weight: 600;
    color: var(--text-primary);
    font-family: var(--font-family);
    line-height: 1.6;
    margin-bottom: var(--spacing-xs);
}

/* 見出しブロック - h2スタイルに統一（h2の基本スタイルを継承） */
.heading-section h2 {
    text-align: center;
}

/* 会社名 - h1スタイルに統一（追加スタイルのみ） */
.company-name-large {
    font-size: var(--font-size-h1) !important; /* 23px */
    font-weight: 400;
    text-align: center;
    letter-spacing: 0.05em;
    margin-bottom: 0;
}

/* 作る/食べるの見出し - メディアクエリでフォントサイズ指定に使用（margin-bottomは親要素のmb-mdで対応） */

/* スライダー */
.slider-section { padding: 0; }

.swiper-container { width: 100%; height: 750px; }

.swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: contain; /* 上下が見切れないようにcontainに変更 */
    background-color: var(--bg);
}

/* ヒーローセクションのスライダー（パソコン版） */
.hero-section .swiper-container {
    width: 100%;
    height: 750px;
}

.hero-section .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

.hero-section .swiper-pagination {
    bottom: 30px;
}

.hero-section .swiper-pagination-bullet {
    width: 12px;
    height: 12px;
    background: rgba(255, 255, 255, 0.5);
    opacity: 1;
}

.hero-section .swiper-pagination-bullet-active {
    background: var(--brand-primary);
}

/* パンくずリスト */
.breadcrumb {
    padding: 40px 0 20px;
    background: #f5f5f5;
    font-size: var(--font-size-sm);
}

.breadcrumb a {
    color: var(--brand-secondary);
    text-decoration: none;
}

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

.swiper-pagination { bottom: 20px; }

/* Swiperボタンのスタイル（詳細度を上げて外部ライブラリをオーバーライド） */
.swiper-container .swiper-button-prev,
.swiper-container .swiper-button-next,
.swiper-container .swiper-button-prev::after,
.swiper-container .swiper-button-next::after,
.swiper-container .swiper-button-prev:hover,
.swiper-container .swiper-button-next:hover,
.swiper-container .swiper-button-prev:hover::after,
.swiper-container .swiper-button-next:hover::after {
    color: var(--brand-secondary);
}

.swiper-container .swiper-pagination-bullet-active {
    background: var(--brand-primary);
}

/* ギャラリー */
/* ギャラリーセクション */
.gallery-section { padding: var(--spacing-xl) 0; }
.gallery-section .row { display: flex; flex-wrap: nowrap; margin: 0; }
.gallery-section .col-xs-6.col-sm-3 { flex: 0 0 25%; max-width: 25%; padding: 0; }
.gallery-section .img-wrapper { width: 100%; height: 100%; position: relative; overflow: hidden; transition: transform var(--transition), box-shadow var(--transition); }
.gallery-section .img-wrapper:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.gallery-section img { width: 100%; height: 300px; object-fit: cover; display: block; transition: transform var(--transition), filter var(--transition); filter: brightness(0.98) contrast(1.01) saturate(0.97); }
.gallery-section .img-wrapper:hover img { transform: scale(1.02); filter: brightness(1) contrast(1.03) saturate(1); }

.grid-wrapper,
.grid-full { width: 100%; }

.row {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -10px;
}

.row-gutter-none { margin: 0; gap: 10px; }
.row-gutter-lg { margin: 0 -20px; }

.col-xs-3,
.col-xs-4,
.col-xs-6,
.col-xs-12 {
    padding: 0 10px;
    flex: 0 0 100%;
}

.col-xs-3 { flex: 0 0 25%; }
.col-xs-4 { flex: 0 0 33.333%; }
.col-xs-6 { flex: 0 0 50%; }

@media (min-width: 768px) {
    .col-sm-3 { flex: 0 0 25%; }
    .col-sm-4 { flex: 0 0 33.333%; }
    .col-sm-6 { flex: 0 0 50%; }
    .col-sm-12 { flex: 0 0 100%; }
}

@media (min-width: 992px) {
    .col-md-6 {
        flex: 0 0 50%;
    }
}

/* 画像 */
.img-wrapper {
    width: 100%;
    position: relative;
    overflow: hidden;
    transition: transform var(--transition), box-shadow var(--transition);
}

.img-wrapper:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow);
}

.img-full img {
    /* width: 100%とheight: autoはグローバルなimgスタイルで既に定義されている */
    transition: transform var(--transition), filter var(--transition);
    filter: brightness(0.98) contrast(1.01) saturate(0.97);
}

.img-wrapper:hover .img-full img {
    transform: scale(1.02);
    filter: brightness(1) contrast(1.03) saturate(1);
}

/* .card-imgと.img-responsiveの共通スタイル */
.card-img,
.img-responsive {
    position: relative;
    overflow: hidden;
    width: 100%;
    margin-bottom: var(--spacing-md);
    transition: transform var(--transition), box-shadow var(--transition);
}

.card-img:hover,
.img-responsive:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow);
}

.card-img img,
.img-responsive img {
    /* width: 100%とheight: autoはグローバルなimgスタイルで既に定義されている */
    transition: transform var(--transition), filter var(--transition);
    filter: brightness(0.95) contrast(0.98) saturate(0.92);
}

.card-img img {
    border-radius: 4px;
}

.img-responsive img {
    object-fit: cover;
}

/* 商品カードの画像が背景から浮かないようにする */
.card-img,
.img-responsive {
    position: relative;
}

.card-img::before,
.img-responsive::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.05);
    z-index: 1;
    pointer-events: none;
    border-radius: 4px;
}

.card-img img,
.img-responsive img {
    position: relative;
    z-index: 0;
}

/* .card-img:hover imgと.img-responsive:hover imgは、.img-wrapper:hover imgなどと統合されているため不要 */

/* カード */
.card {
    background: var(--bg);
    padding: var(--spacing-md);
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow);
    border: 1px solid var(--border);
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transform: translateY(0);
    opacity: 0;
    animation: fadeInUp 0.6s ease-out forwards;
}

/* カードのフェードインアニメーション */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* カードのホバーアニメーション */
.card:hover {
    transform: translateY(-8px) scale(1.02);
    box-shadow: 0 12px 40px rgba(244, 186, 99, 0.25);
    border-color: rgba(244, 186, 99, 0.3);
}

/* カード内の画像のホバーアニメーション */
.card:hover .card-img img,
.card:hover .img-responsive img {
    transform: scale(1.05);
    filter: brightness(1) contrast(1.02) saturate(1.05);
}

/* カードのアニメーション遅延（順番に表示） */
.card:nth-child(1) {
    animation-delay: 0.1s;
}

.card:nth-child(2) {
    animation-delay: 0.2s;
}

.card:nth-child(3) {
    animation-delay: 0.3s;
}

.card:nth-child(4) {
    animation-delay: 0.4s;
}

/* services.htmlのカードの余白を他のページと統一 */
.service-section .card {
    padding: var(--spacing-xl);
}

/* services.htmlのタイトルと写真の間のスペースを詰める */
.service-section .heading-block-main {
    margin-bottom: var(--spacing-md);
}

/* サービスセクションの画像サイズ（デスクトップ） */
.service-section .card-img,
.service-section .img-responsive,
.sushi-section .card-img,
.sushi-section .img-responsive,
.matcha-section .card-img,
.matcha-section .img-responsive {
    height: 250px;
}

/* index.htmlのサービスセクションの大きな画像コンテナ */
.service-section .card-img-container-large {
    height: 400px !important;
    width: 100% !important;
}

.service-section .card-img-container-large img {
    height: 400px !important;
    width: 100% !important;
    object-fit: cover;
}

.service-section .card-img img,
.service-section .img-responsive img,
.sushi-section .card-img img,
.sushi-section .img-responsive img,
.matcha-section .card-img img,
.matcha-section .img-responsive img {
    height: 250px;
    object-fit: cover;
}

.card-text {
    font-size: var(--font-size-base);
    line-height: var(--line-height-base);
    color: var(--text-primary);
    font-weight: 400;
}

/* ボタン */
.btn {
    display: inline-block;
    padding: var(--spacing-sm) 40px;
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: var(--text-white);
    border: none;
    border-radius: var(--radius-lg);
    font-size: var(--font-size-lg);
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    box-shadow: 0 4px 15px rgba(244, 186, 99, 0.3);
    text-decoration: none;
    transform: translateY(0) scale(1);
    position: relative;
    overflow: hidden;
}

/* ボタンのホバーエフェクト用の疑似要素 */
.btn::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.2);
    transform: translate(-50%, -50%);
    transition: width 0.6s, height 0.6s;
}

.btn:hover::before {
    width: 300px;
    height: 300px;
}

.btn,
.btn:hover,
.btn:active,
.btn:focus {
    color: var(--text-white);
}

.btn:hover {
    background: linear-gradient(135deg, var(--brand-secondary) 0%, var(--brand-primary) 100%);
    transform: translateY(-4px) scale(1.05);
    box-shadow: 0 8px 25px rgba(244, 186, 99, 0.5);
    animation: buttonPulse 1.5s ease-in-out infinite;
}

@keyframes buttonPulse {
    0%, 100% {
        box-shadow: 0 8px 25px rgba(244, 186, 99, 0.5);
    }
    50% {
        box-shadow: 0 10px 30px rgba(244, 186, 99, 0.7);
    }
}

.btn:active {
    transform: translateY(-2px) scale(1.02);
    box-shadow: 0 4px 15px rgba(244, 186, 99, 0.4);
}

.btn span {
    position: relative;
    z-index: 1;
}

/* 抹茶のブランドカラーボタン */
.btn-matcha {
    background-color: var(--color-matcha);
    box-shadow: var(--shadow);
}

.btn-matcha:hover {
    background-color: var(--color-matcha-hover);
    box-shadow: var(--shadow);
}

.btn-wrapper {
    text-align: center;
    margin-top: var(--spacing-md);
}

/* カード内のボタンの追加アニメーション */
.card .btn {
    opacity: 0;
    animation: fadeInUp 0.6s ease-out forwards;
    animation-delay: 0.5s;
}

.card:hover .btn {
    animation: none;
    opacity: 1;
}

/* 採用ページと問い合わせページのボタン - 文字色を明示的に白に設定 */
.btn-submit,
a.btn-submit,
button.btn-submit {
    color: var(--text-white) !important;
}

.btn-submit:hover,
a.btn-submit:hover,
button.btn-submit:hover {
    color: var(--text-white) !important;
}

.btn-submit:active,
a.btn-submit:active,
button.btn-submit:active {
    color: var(--text-white) !important;
}

.btn-submit:focus,
a.btn-submit:focus,
button.btn-submit:focus {
    color: var(--text-white) !important;
}

/* 余白 - スペーシング変数に統一 */
.mt-sm { margin-top: var(--spacing-sm); }
.mt-md { margin-top: var(--spacing-md); }
.mt-lg { margin-top: var(--spacing-lg); }
.mb-xs { margin-bottom: var(--spacing-xs); }
.mb-sm { margin-bottom: var(--spacing-sm); }
.mb-md { margin-bottom: var(--spacing-md); }
.mb-lg { margin-bottom: var(--spacing-lg); }
.mb-xl { margin-bottom: var(--spacing-xxl); }

/* テキストコンテンツ */
.text-content {
    font-size: var(--font-size-base);
    line-height: var(--line-height-base);
    color: var(--text-primary);
    font-weight: 400;
}

/* テキストスタイル */
.text-body {
    font-size: var(--font-size-base);
    line-height: var(--line-height-base);
    margin-bottom: var(--spacing-md);
    color: var(--text-primary);
}

.text-body-bold {
    font-weight: 600;
    margin-bottom: var(--spacing-md);
}

.text-secondary {
    color: var(--text-secondary);
}

.location-divider {
    margin-bottom: var(--spacing-xxl);
    padding-bottom: var(--spacing-md);
    border-bottom: 1px solid var(--border);
}

.text-body-small {
    font-size: var(--font-size-base);
    line-height: var(--line-height-base);
    margin-bottom: var(--spacing-xs);
    color: var(--text-primary);
}

/* 採用ページのリスト項目の行間を詰める */
.recruit-section .text-body-small {
    line-height: 1.4;
    margin-bottom: 0.3em;
}

.recruit-section-item {
    padding-top: 30px;
    border-top: 1px solid rgba(255, 157, 10, 0.2);
}

.recruit-section-item:first-of-type {
    border-top: none;
    padding-top: 0;
}

.recruit-highlight-box {
    padding: 20px;
    background: rgba(255, 157, 10, 0.08);
    border-left: 4px solid var(--brand-primary);
    border-radius: 8px;
    margin-top: 15px;
}

.text-content p { margin-bottom: var(--spacing-sm); }
.text-content a { color: var(--brand-secondary); font-weight: 500; }

/* 共通コンポーネント - トンマナ統一 */
/* 情報ボックス */
.info-box {
    background: var(--bg);
    padding: var(--spacing-xl);
    border-radius: var(--radius-md);
    margin-bottom: var(--spacing-xl);
    box-shadow: var(--shadow);
    border: 1px solid var(--border);
}

.info-box-highlight { border-left: 3px solid var(--brand-secondary); }

/* テキストハイライト */
.text-highlight { color: var(--brand-secondary); font-weight: 600; }

/* about_textの最初の部分をmission_1と同じスタイルに */
.about-text-mission-style {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.8;
    color: var(--text-primary);
}

/* カードコンテンツ */
.card-content { text-align: center; padding: var(--spacing-xl); }

/* 見出しスタイル */
/* h3の特別なスタイル（オレンジ色の見出し） */
.heading-subtitle,
h3.heading-subtitle {
    font-weight: 700;
    color: var(--brand-secondary);
    text-align: center;
}

.heading-subtitle-text {
    font-size: var(--font-size-lg);
    font-weight: 600;
    color: var(--text-primary);
    text-align: center;
    margin-bottom: var(--spacing-lg);
}

/* h3のセクションタイトルスタイル（オレンジ色の太い線） */
.heading-section-title,
.faq-category-title,
.heading-category-title,
h3.heading-category-title,
h3.faq-category-title {
    margin-bottom: var(--spacing-lg);
    padding-bottom: var(--spacing-sm);
    border-bottom: 3px solid var(--brand-primary);
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.faq-category-title .news-icon {
    flex-shrink: 0;
}


/* セクション背景 */
.section-bg-white { background: var(--bg); }

/* フレックスコンテナ */
.flex-column-center {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

/* 見出しテキスト */
.heading-text-highlight {
    font-size: var(--font-size-base);
    font-weight: 700;
    color: var(--brand-secondary);
    font-family: var(--font-family);
    line-height: var(--line-height-base);
    margin-bottom: var(--spacing-md);
}

/* リストスタイル */
.list-check {
    font-size: var(--font-size-base);
    line-height: var(--line-height-base);
    margin-bottom: var(--spacing-xs);
    color: var(--text-primary);
}

/* リンクスタイル */
.link-external { color: var(--color-link); text-decoration: underline; }
.link-external:hover { text-decoration: none; }

/* ニュースリストのリンク */
.news-list a {
    color: var(--color-link);
    text-decoration: underline;
}

.news-list a:hover {
    color: var(--color-link-hover);
}

/* FAQスタイル */
.faq-container {
    max-width: 900px;
    margin: 0 auto;
}

.faq-item {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    margin-bottom: var(--spacing-md);
    overflow: hidden;
    box-shadow: var(--shadow);
    transition: box-shadow var(--transition);
}

.faq-item:hover {
    box-shadow: 0 4px 12px var(--black-light);
}

.faq-question {
    padding: 25px 30px;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: var(--font-size-h5);
    font-weight: 600;
    color: var(--text-primary);
    background: #fafafa;
    border-bottom: 1px solid var(--border);
    transition: background var(--transition);
}

.faq-question:hover {
    background: #f5f5f5;
}

.faq-question::after {
    content: '+';
    font-size: 28px; /* h1とh2の中間サイズ、必要に応じて変数化 */
    font-weight: 300;
    color: var(--brand-primary);
    transition: transform var(--transition);
}

.faq-item.active .faq-question::after {
    content: '−';
    transform: rotate(0deg);
}

.faq-answer {
    padding: 0 30px;
    max-height: 0;
    overflow: hidden;
    transition: max-height var(--transition), padding var(--transition);
    color: var(--text-secondary);
    line-height: 1.8;
}

.faq-item.active .faq-answer {
    padding: 25px 30px;
    max-height: 1000px;
}

.faq-category {
    margin-bottom: var(--spacing-xl);
}

/* コンテナスタイル */
.container-center {
    max-width: 1200px;
    margin: 0 auto;
}

/* ウィジェットコンテナ */
.widget-container {
    text-align: center;
    background: var(--bg);
    border-radius: var(--radius-md);
    padding: var(--spacing-xl);
    box-shadow: var(--shadow);
}


.heading-sub {
    font-size: var(--font-size-h5);
    font-weight: 600;
    color: var(--text-secondary);
    font-family: var(--font-family);
    line-height: 1.6;
    text-align: center;
    margin-bottom: var(--spacing-xl);
}

/* テキストスタイル */
.text-small {
    font-size: var(--font-size-sm);
    line-height: 1.8;
    color: var(--text-secondary);
}

/* 寿司ページの説明文と店舗情報用スタイル */
.sushi-section .card-text > p[data-i18n="sushi_description"] {
    font-size: 16px;
    line-height: 1.8;
    margin-bottom: 30px;
}

.sushi-section .card-text > div[data-i18n="sushi_tokyo_text"],
.sushi-section .card-text > div[data-i18n="sushi_osaka_text"] {
    font-size: 14px;
    line-height: 1.8;
    color: #666;
}

/* 抹茶ページのロゴ用スタイル */
.sushi-section .heading-block-main img.img-full,
.matcha-section .heading-block-main img.img-full,
.award-section .heading-block-main img.img-full {
    max-width: 180px;
    margin: 0 auto;
    display: block;
}


/* マージン */

/* プロセス番号 */
.process-number {
    background: var(--brand-secondary);
    color: var(--text-white);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    flex-shrink: 0;
}

.process-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.process-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

/* カード画像コンテナ */
.card-img-container {
    width: 100%;
    height: 250px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.card-img-container-large {
    height: 400px;
}

.card-img-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.card-img-container-large img {
    width: 100%;
    max-width: 100%;
}

/* 会社情報セクション */
.corporate-section {
    background: var(--bg);
}

.corporate-section [data-i18n="corporate_text"] {
    background: var(--bg);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow);
    padding: var(--spacing-xl);
    max-width: 900px;
    margin: 0 auto;
}

/* 会社情報ロゴグリッド */
.corporate-logo-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-lg) 0;
}

.corporate-logo-item {
    width: 80px;
    height: 80px;
    object-fit: contain;
    transition: all var(--transition);
    flex-shrink: 0;
}

.corporate-logo-item:hover {
    transform: scale(1.1);
    opacity: 0.8;
}

/* 会社情報リスト */
.corporate-info-list {
    background: var(--bg);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow);
    overflow: hidden;
}

.corporate-info-item {
    display: flex;
    align-items: flex-start;
    padding: 28px var(--spacing-xl);
    border-bottom: 1px solid var(--border);
    transition: background-color var(--transition);
    gap: var(--spacing-md);
}

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

.corporate-info-item:hover {
    background-color: var(--bg);
}

.corporate-info-label {
    min-width: 200px;
    max-width: 200px;
    flex-shrink: 0;
    font-size: var(--font-size-base);
    font-weight: 600;
    color: var(--brand-secondary);
    letter-spacing: 0.5px;
}

.corporate-info-value {
    flex: 1;
    font-size: var(--font-size-base);
    color: var(--text-primary);
    line-height: var(--line-height-base);
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.corporate-sns-links a {
    color: var(--brand-secondary);
    text-decoration: none;
    transition: color var(--transition);
}

.corporate-sns-links a:hover {
    color: var(--brand-primary);
    text-decoration: underline;
}

/* 会社情報ページのレスポンシブ対応 */
@media (max-width: 768px) {
    .corporate-logo-grid {
        gap: var(--spacing-sm);
        padding: var(--spacing-md) 0;
    }
    
    .corporate-logo-item {
        width: 60px;
        height: 60px;
    }
    
    .corporate-info-item {
        flex-direction: column;
        align-items: flex-start;
        padding: 20px 25px;
    }
    
    .corporate-info-label {
        min-width: 100%;
        margin-bottom: 10px;
        font-size: var(--font-size-sm);
    }
    
    .corporate-info-value {
        font-size: var(--font-size-base);
    }
}

[data-i18n="corporate_text"] span {
    font-size: var(--font-size-h5);
    line-height: 1.8;
    display: block;
    padding: var(--spacing-sm) 0;
    border-bottom: 1px solid var(--border);
}

[data-i18n="corporate_text"] span:last-child {
    border-bottom: none;
}

/* 「海や山にアクティビティがあるように、「食」にも「アクティビティ」を。」の文字（デスクトップ） */
p[data-i18n="mission_1"],
.mission-section p[data-i18n="mission_1"] {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.8;
}

/* 実績テキスト（デスクトップ）: 15px（16px - 1px） */
p[data-i18n="achievement_text"],
.achievement-box p[data-i18n="achievement_text"],
p[data-i18n="achievement_text"][style*="font-size"],
.achievement-box p[data-i18n="achievement_text"][style*="font-size"] {
    font-size: var(--font-size-sm); /* 15px → 14pxに統一 */
}

/* 実績画像のスタイル（デスクトップ） */
.achievement-images-wrapper {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
}

.achievement-image-container {
    position: relative;
    overflow: hidden;
    box-shadow: var(--shadow);
    transition: transform var(--transition), box-shadow var(--transition);
}

.achievement-image-container:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow);
}

.achievement-image {
    width: 100%;
    height: 350px;
    object-fit: cover;
    display: block;
    filter: brightness(0.98) contrast(1.02) saturate(0.95);
    transition: transform var(--transition), filter var(--transition);
}

.achievement-image-container:hover .achievement-image {
    transform: scale(1.03);
    filter: brightness(1) contrast(1.05) saturate(1);
}

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

/* 動画 */
.video-section {
    padding: 20px 0; /* 下の余白を半分に（40px → 20px） */
}

.video-wrapper {
    position: relative;
    padding-bottom: 45%; /* 56.25% × 0.8 = 45% */
    height: 0;
    overflow: hidden;
    width: 80%; /* 80%に変更 */
    max-width: 80%;
    margin: 0 auto;
    left: 0; /* 中央配置のための調整 */
}

.youtube-embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
    image-rendering: high-quality;
}

/* リスト */
.list-vertical {
    width: 100%;
}

.news-list {
    list-style: none;
}

.news-list li {
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--border);
}

.list-item {
    display: flex;
    align-items: flex-start;
}

.news-icon {
    object-fit: contain;
    border-radius: 50%;
    background: var(--white-heavy);
    padding: 3px;
    width: 89.6px;
    height: 89.6px;
    flex-shrink: 0;
    margin-right: var(--spacing-sm);
}


.list-icon {
    margin-right: var(--spacing-sm);
    flex-shrink: 0;
}

.list-text {
    flex: 1;
    font-size: var(--font-size-sm);
}

.list-text a {
    color: var(--color-link);
    font-weight: 500;
    text-decoration: underline;
}

.list-text a:hover {
    color: var(--color-link-hover);
    text-decoration: underline;
}

/* フォーム */
/* お問い合わせフォーム冒頭の電話番号案内 */
.contact-phone-info {
    max-width: 600px;
    margin: 0 auto;
    padding: 25px;
    background: linear-gradient(135deg, rgba(244, 186, 99, 0.05) 0%, rgba(217, 119, 6, 0.05) 100%);
    border-radius: 12px;
    border: 1px solid rgba(244, 186, 99, 0.2);
    text-align: center;
}

.contact-phone-item {
    margin-bottom: 20px;
}

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

.contact-phone-label {
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
    margin-bottom: 8px;
    font-weight: 500;
}

.contact-phone-number {
    font-size: var(--font-size-lg);
    color: var(--text-primary);
    font-weight: 600;
    margin: 0;
}

.contact-form {
    max-width: 600px;
    margin: 0 auto;
    scroll-margin-top: 0 !important;
    scroll-padding-top: 0 !important;
}


.form-group {
    margin-bottom: 25px;
}

.form-label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    color: var(--text-primary);
    font-size: var(--font-size-base);
}

.form-label.required::after {
    content: " *";
    color: var(--color-error);
}

.form-inputs {
    width: 100%;
}

.form-control {
    width: 100%;
    padding: 14px var(--spacing-md);
    border: 2px solid var(--border);
    border-radius: var(--radius-sm);
    font-size: 16px !important; /* iOSの自動ズームを防ぐため16px以上必須 */
    color: var(--text-primary);
    transition: all var(--transition);
    max-width: 100%;
    scroll-margin-top: 0 !important;
    scroll-padding-top: 0 !important;
}

.contact-form-wide {
    max-width: 663px; /* さらに3分の2に調整（995px × 2/3 = 663px） */
    width: 100%;
    margin: 0 auto;
    padding: 0 var(--spacing-md);
}

.contact-form-wide .form-control {
    padding: 16px 24px;
    font-size: 16px !important; /* iOSの自動ズームを防ぐため16px以上必須 */
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.form-control:focus {
    outline: none;
    border-color: var(--brand-primary);
    box-shadow: 0 0 0 3px var(--brand-rgba);
}

textarea.form-control {
    resize: vertical;
    min-height: 120px;
}

/* フォーム要素のフォーカス時の自動スクロールを防ぐ */
#contact-section,
.contact-section {
    scroll-margin-top: 0 !important;
    scroll-padding-top: 0 !important;
}

.contact-form input,
.contact-form textarea,
.contact-form select,
.contact-form button {
    scroll-margin-top: 0 !important;
    scroll-padding-top: 0 !important;
    font-size: 16px !important; /* iOSの自動ズームを防ぐため16px以上必須 */
}

.checkbox-inline {
    display: inline-block;
    margin-right: 20px;
    margin-top: 10px;
}

.checkbox-inline input[type="checkbox"] {
    margin-right: 5px;
}

.form-submit {
    margin-top: 30px;
}

/* フッター */
.footer {
    background: var(--brand-gradient);
    color: var(--text-white);
    padding: 60px 0 30px;
    margin-top: 60px;
}

.footer-inner {
    max-width: 1200px;
    margin: 0 auto;
}

.footer-content {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 50px;
    margin-bottom: var(--spacing-xl);
}

.footer-section {
    text-align: left;
}

.footer-section:first-child {
    margin-right: 40px;
}

.footer-logo-container {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--spacing-sm);
    margin-top: var(--spacing-md);
}

/* フッターのロゴ */
.footer-section:first-child img[src*="logo_sushi"],
.footer-section:first-child img[src*="logo_matcha"],
.footer-section:first-child img[alt*="Sushi Making Japan Logo"],
.footer-section:first-child img[alt*="Matcha Making Japan Logo"] {
    width: 100px;
    height: 100px;
    min-width: 100px;
    min-height: 100px;
    max-width: 100px;
    max-height: 100px;
    object-fit: contain;
    border: 3px solid var(--white-heavy);
    border-radius: 50%;
    padding: 2px;
    background: transparent;
    display: block;
    flex-shrink: 0;
    box-sizing: border-box;
}

/* フッターのロゴリンク */
.footer-section:first-child a[href*="sushimakingjapan"],
.footer-section:first-child a[href*="matchamakingjapan"] {
    display: inline-block;
    cursor: pointer;
    transition: transform var(--transition), opacity var(--transition);
    text-decoration: none;
}

.footer-section:first-child a[href*="sushimakingjapan"]:hover,
.footer-section:first-child a[href*="matchamakingjapan"]:hover {
    transform: scale(1.1);
    opacity: 0.9;
}

.footer-section:first-child a[href*="sushimakingjapan"]:active,
.footer-section:first-child a[href*="matchamakingjapan"]:active {
    transform: scale(1.05);
}

.footer-heading {
    font-size: var(--font-size-lg);
    font-weight: 600;
    margin-bottom: var(--spacing-sm);
    margin-top: 0;
    color: var(--text-white);
    border-bottom: 1px solid var(--white-medium);
    padding-bottom: var(--spacing-xs);
    white-space: nowrap; /* 1行で表示 */
}

.footer-text {
    font-size: var(--font-size-sm);
    line-height: var(--line-height-base);
    color: var(--white-heavy);
    margin-bottom: var(--spacing-sm);
}

.footer-links {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.footer-links a {
    color: var(--white-heavy);
    text-decoration: none;
    font-size: var(--font-size-sm);
    transition: color 0.3s ease;
}

.footer-links a:hover {
    color: var(--text-white);
    text-decoration: underline;
}

.footer-sns {
    display: flex;
    gap: 20px; /* 余白を倍に（10px → 20px） */
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
}

.footer-sns-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.footer-sns-link img,
.footer-sns-youtube img {
    width: 40px;
    height: 40px;
    object-fit: contain;
    display: block;
    transition: transform var(--transition), opacity var(--transition);
}

.footer-sns-link svg {
    width: 40px;
    height: 40px;
    display: block;
    transition: transform var(--transition), opacity var(--transition);
}

.footer-sns-link {
    cursor: pointer;
    transition: transform var(--transition), opacity var(--transition);
}

.footer-sns-link:hover {
    transform: scale(1.1);
    opacity: 0.9;
}

.footer-sns-link:active {
    transform: scale(1.05);
}

/* SNSと問い合わせを縦2段に配置 */
.footer-sns-contact-column {
    display: flex;
    flex-direction: column;
}

.footer-sns-section {
    margin-bottom: 0;
}

/* 問い合わせセクション（パソコン版のみ表示） */
.footer-contact-section-desktop {
    display: block;
}

.footer-contact-content {
    display: flex;
    flex-direction: column;
}

.footer-contact-link {
    color: var(--white-heavy);
    text-decoration: none;
    transition: color 0.3s ease;
    margin-bottom: 5px;
    font-size: var(--font-size-sm);
}

.footer-contact-link:hover {
    color: var(--text-white);
    text-decoration: underline;
}

.footer-contact-content p {
    margin: 0;
    color: var(--white-heavy);
    font-size: var(--font-size-sm);
    line-height: var(--line-height-base);
}

.footer-copyright {
    text-align: center;
    padding-top: 30px;
    border-top: 1px solid var(--white-medium);
    margin-top: 30px;
}

.footer-copyright span,
.footer-copyright strong {
    color: var(--text-white);
}

/* SNSアイコンサイズ調整 */
.sns-row {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    flex-wrap: nowrap;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
}

.sns-row > div {
    flex: 0 0 auto;
    min-width: 0;
    padding: 0 5px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.sns-icon {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: var(--spacing-sm);
    width: 100%;
    max-width: 100%;
}

/* すべてのSNSアイコンを統一サイズに */
.sns-section .sns-icon img,
.sns-section .sns-icon svg,
.sns-section .sns-icon-youtube img {
    max-width: 84px;
    width: 84px;
    height: 84px;
    object-fit: contain;
    margin: 0;
}

.sns-section .sns-icon-youtube {
    padding: var(--spacing-sm);
}


/* 受賞歴画像サイズ調整 */
.award-image {
    max-width: 720px; /* 1.2倍に調整 */
    margin: 0 auto;
    position: relative;
    overflow: hidden;
    transition: transform var(--transition), box-shadow var(--transition);
}

.award-image:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow);
}

.award-image img {
    width: 100%;
    height: auto;
    transition: transform var(--transition), filter var(--transition);
    filter: brightness(0.98) contrast(1.01) saturate(0.97);
}

.award-image:hover img {
    transform: scale(1.02);
    filter: brightness(1) contrast(1.03) saturate(1);
}

/* 受賞歴の画像 - サイズ統一 */
.award-image-large,
.award-image-small {
    max-width: 600px;
    margin: 0 auto;
    position: relative;
    overflow: hidden;
    transition: transform var(--transition), box-shadow var(--transition);
}

.award-image-large:hover,
.award-image-small:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow);
}

.award-image-large img,
.award-image-small img {
    width: 100%;
    height: auto;
    max-width: 600px;
    transition: transform var(--transition), filter var(--transition);
    filter: brightness(0.98) contrast(1.01) saturate(0.97);
}

.award-image-large:hover img,
.award-image-small:hover img {
    transform: scale(1.02);
    filter: brightness(1) contrast(1.03) saturate(1);
}

/* 受賞歴のテキスト - サイズ統一 */
.award-text-small,
.text-content.award-text-small {
    font-size: 10px !important;
    line-height: 1.8;
    text-align: center;
    margin: 0 auto;
}

.award-text-large,
.text-content.award-text-large {
    font-size: 10px !important; /* award-text-smallと同じサイズ */
    line-height: 1.8;
    text-align: center;
    margin: 0 auto;
}

.award-text-large span[data-i18n="award_1_text"],
.text-content.award-text-large span[data-i18n="award_1_text"] {
    font-size: 10px !important; /* award-text-smallと同じサイズ */
}

.award-text-large {
    max-width: 1000px;
}

.award-text-small {
    max-width: 100%;
}

.award-text-large strong,
.award-text-small strong {
    font-size: 14px !important; /* var(--font-size-base) 16px - 2px = 14px */
    font-weight: 600;
}

/* 受賞歴の各タイトル（インラインスタイルを上書き - デスクトップ） */
.award-section strong[data-i18n^="award_"] {
    font-size: var(--font-size-base);
}

/* その他の受賞歴 - 小さく表示 */
.awards-grid-small {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    margin-top: 40px;
}

.award-item-small {
    text-align: center;
}

/* アワードページ用 - 1行ずつ表示 */
/* 受賞歴ページのカードデザイン */
.award-card {
    background: var(--bg);
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    padding: 30px;
    margin-bottom: 40px;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    border: 1px solid rgba(244, 186, 99, 0.2);
    animation: fadeInUp 0.6s ease-out;
    opacity: 0;
    animation-fill-mode: forwards;
}

.award-card:nth-child(1) {
    animation-delay: 0.1s;
}

.award-card:nth-child(2) {
    animation-delay: 0.2s;
}

.award-card:nth-child(3) {
    animation-delay: 0.3s;
}

.award-card:nth-child(4) {
    animation-delay: 0.4s;
}

.award-card:nth-child(5) {
    animation-delay: 0.5s;
}

.award-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 30px rgba(244, 186, 99, 0.15);
}

.award-card-featured {
    background: linear-gradient(135deg, rgba(244, 186, 99, 0.05) 0%, rgba(217, 119, 6, 0.05) 100%);
    border: 2px solid rgba(244, 186, 99, 0.3);
    padding: 40px;
    animation-delay: 0s;
}

.awards-grid .award-card:nth-child(1) {
    animation-delay: 0.2s;
}

.awards-grid .award-card:nth-child(2) {
    animation-delay: 0.3s;
}

.awards-grid .award-card:nth-child(3) {
    animation-delay: 0.4s;
}

.awards-grid .award-card:nth-child(4) {
    animation-delay: 0.5s;
}

.award-card-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.award-badge {
    display: inline-block;
    background: linear-gradient(135deg, #f4ba63 0%, #d97706 100%);
    color: white;
    padding: 8px 16px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    margin-bottom: 15px;
    text-align: center;
}

.award-title {
    font-size: var(--font-size-lg) !important;
    font-weight: 700 !important;
    color: var(--text-primary);
    margin-bottom: 15px !important;
    display: block;
    line-height: 1.4;
}

.award-title-with-badge {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 15px;
    flex-wrap: wrap;
}

.award-title-logo {
    width: 120px;
    height: 120px;
    object-fit: contain;
    border-radius: 8px;
    flex-shrink: 0;
}

.award-title-with-badge .award-title {
    flex: 1;
    margin-bottom: 0 !important;
    min-width: 200px;
}

.award-rank {
    display: inline-block;
    background: linear-gradient(135deg, #f4ba63 0%, #d97706 100%);
    color: white;
    padding: 6px 12px;
    border-radius: 16px;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
    flex-shrink: 0;
}

.award-description {
    font-size: var(--font-size-base);
    line-height: 1.8;
    color: var(--text-secondary);
    display: block;
}

.award-image-card {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease;
}

.award-card:hover .award-image-card {
    transform: scale(1.02);
}

.award-placeholder-youtube {
    width: 100%;
    max-width: 600px;
    height: 300px;
    background: linear-gradient(135deg, #f4ba63 0%, #d97706 100%);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 24px;
    font-weight: bold;
    text-align: center;
    padding: 20px;
    margin: 0 auto;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

/* 受賞歴グリッドレイアウト */
.awards-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
    margin-top: 40px;
}

.award-row {
    display: flex;
    align-items: center;
    margin-bottom: var(--spacing-xl);
    gap: var(--spacing-lg);
}

.award-image-container {
    flex: 0 0 300px;
}

.award-image-single {
    max-width: 100%;
    margin: 0 auto;
}

.award-image-single img {
    width: 100%;
    height: auto;
}

.award-text-container {
    flex: 1;
}

.award-text-single {
    font-size: 12px;
    line-height: 1.8;
    text-align: left;
}

.award-text-single strong {
    font-size: var(--font-size-sm);
    font-weight: 600;
    display: block;
    margin-bottom: 10px;
}

/* レスポンシブ */
@media (max-width: 1024px) {
    .awards-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    
    .awards-grid-small {
        grid-template-columns: repeat(2, 1fr);
        gap: 25px;
    }
    
    .award-card {
        padding: 25px;
    }
    
    .award-card-featured {
        padding: 30px;
    }
    
    .award-row {
        flex-direction: column;
        text-align: center;
    }
    
    .award-image-container {
        flex: 0 0 auto;
        width: 100%;
        max-width: 480px;
    }
    
    .award-text-container {
        flex: 1;
    }
    
    .award-text-single {
        text-align: center;
    }
}

@media (max-width: 768px) {
    .awards-grid {
        grid-template-columns: 1fr;
        gap: 25px;
    }
    
    .award-card {
        padding: 20px;
        margin-bottom: 30px;
    }
    
    .award-card-featured {
        padding: 25px;
    }
    
    .award-title {
        font-size: var(--font-size-base) !important;
    }
    
    .award-title-with-badge {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }
    
    .award-title-logo {
        width: 32px;
        height: 32px;
    }
    
    .award-title-with-badge .award-title {
        min-width: auto;
        width: 100%;
    }
    
    .award-rank {
        font-size: 11px;
        padding: 4px 10px;
    }
    
    .award-description {
        font-size: var(--font-size-sm);
    }
    
    .award-placeholder-youtube {
        height: 250px;
        font-size: 20px;
    }
    
    .award-image-large {
        max-width: 100%;
    }
    
    .award-text-small,
    .text-content.award-text-small {
        font-size: 9px !important;
    }
    
    .award-text-large,
    .text-content.award-text-large {
        font-size: 9px !important; /* award-text-smallと同じサイズ */
    }
    
    .award-text-large span[data-i18n="award_1_text"],
    .text-content.award-text-large span[data-i18n="award_1_text"] {
        font-size: 9px !important; /* award-text-smallと同じサイズ */
    }
    
    .award-text-large strong,
    .award-text-small strong {
        font-size: 12px !important;
    }
    
    .awards-grid-small {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    
    .award-image-small {
        max-width: 100%;
    }
    
    .award-row {
        flex-direction: column;
        gap: 20px;
        margin-bottom: 40px;
    }
    
    .award-image-container {
        flex: 0 0 auto;
        width: 100%;
    }
    
    .award-text-single {
        font-size: var(--font-size-sm);
        text-align: center;
    }
    
    .award-text-single strong {
        font-size: var(--font-size-sm);
    }
    
    /* 受賞歴の各タイトル（インラインスタイルを上書き） */
    .award-section strong[data-i18n^="award_"] {
        font-size: var(--font-size-sm);
    }
}

/* TripAdvisorレビューセクション */
.reviews-section {
    background: var(--bg);
}

/* レビューカードグリッド */
.reviews-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
    margin-top: 40px;
    margin-bottom: 40px;
}

.review-card {
    background: var(--bg);
    border-radius: 12px;
    padding: 25px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
    border: 1px solid rgba(244, 186, 99, 0.2);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    animation: fadeInUp 0.6s ease-out;
    animation-fill-mode: forwards;
    opacity: 0;
}

.review-card:nth-child(1) {
    animation-delay: 0.1s;
}

.review-card:nth-child(2) {
    animation-delay: 0.2s;
}

.review-card:nth-child(3) {
    animation-delay: 0.3s;
}

.review-card:nth-child(4) {
    animation-delay: 0.4s;
}

.review-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(244, 186, 99, 0.15);
}

.review-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
}

.review-author {
    font-size: var(--font-size-lg);
    font-weight: 600;
    color: var(--text-primary);
}

.review-stars {
    color: #ffc107;
    font-size: 18px;
    letter-spacing: 2px;
}

.review-date {
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
    margin-bottom: 15px;
}

.review-text {
    font-size: var(--font-size-base);
    line-height: 1.8;
    color: var(--text-primary);
}

#tripadvisor-widget-container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}

#tripadvisor-widget-container iframe {
    width: 100%;
    max-width: 100%;
    border: none;
}

/* TripAdvisorロゴの上に余白を追加（デスクトップ） */
#tripadvisor-widget-container a[href*="tripadvisor"] {
    margin-top: 20px;
    display: block;
    text-align: center;
}

@media (max-width: 768px) {
    .contact-phone-info {
        padding: 20px;
        margin-bottom: 30px;
    }
    
    .contact-phone-label {
        font-size: var(--font-size-sm);
    }
    
    .contact-phone-number {
        font-size: var(--font-size-base);
    }
    
    .reviews-section {
        padding: 60px 0;
    }
    
    .reviews-grid {
        grid-template-columns: 1fr;
        gap: 25px;
    }
    
    .review-card {
        padding: 20px;
    }
    
    #tripadvisor-widget-container {
        padding: 20px;
        min-height: 300px;
    }
    
    /* TripAdvisorロゴを80%に縮小（モバイル） */
    #tripadvisor-widget-container img[src*="Tripadvisor_lockup"],
    #tripadvisor-widget-container img[alt*="TripAdvisor"] {
        max-width: 200px; /* 250px * 0.8 = 200px */
        width: 80%;
        height: auto;
    }
    
    /* TripAdvisorロゴを中央に配置（モバイル） */
    #tripadvisor-widget-container a[href*="tripadvisor"] {
        display: block;
        text-align: center;
        margin: 20px auto 0 auto; /* ロゴの上に20pxの余白を追加 */
        width: 100%;
    }
    
    #tripadvisor-widget-container a[href*="tripadvisor"] img {
        display: block;
        margin: 0 auto;
    }
}

/* フォトブースギャラリー */
.photo-gallery-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr); /* デスクトップで4列（2x4グリッド） */
    gap: 20px;
    max-width: 1200px;
    margin: 0 auto;
}

.photo-item {
    overflow: hidden;
    border-radius: 8px;
    position: relative;
    transition: transform var(--transition), box-shadow var(--transition);
}

.photo-item:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow);
}

.photo-item img {
    width: 100%;
    height: 100%;
    min-height: 200px;
    object-fit: cover;
    border-radius: 8px;
    box-shadow: var(--shadow);
    transition: transform var(--transition), filter var(--transition);
    filter: brightness(0.98) contrast(1.01) saturate(0.97);
}

.photo-item {
    aspect-ratio: 1; /* 正方形に保つ */
}

.photo-item:hover img {
    transform: scale(1.02);
    filter: brightness(1) contrast(1.03) saturate(1);
}

/* 寿司ページ専用のフォトギャラリー（横4列×縦2行） */
.photo-gallery-grid-sushi {
    display: grid;
    grid-template-columns: repeat(4, 1fr); /* 横4列 */
    grid-template-rows: repeat(2, 1fr); /* 縦2行 */
    gap: 20px;
    max-width: 1200px;
    margin: 0 auto;
}

/* 抹茶ページ専用のフォトギャラリー（横4列×縦3行） */
.photo-gallery-grid-matcha {
    display: grid;
    grid-template-columns: repeat(4, 1fr); /* 横4列 */
    grid-template-rows: repeat(2, 1fr); /* 縦2行（パソコン版） */
    gap: 20px;
    max-width: 1200px;
    margin: 0 auto;
}

/* ヒーローセクションのフォトギャラリー（ヘッダーの下） */
.hero-photo-gallery {
    display: grid;
    grid-template-columns: repeat(4, 1fr); /* デスクトップで4列（2x4グリッド） */
    gap: 0; /* ギャップなしで密接に配置 */
    width: 100%;
    margin: 0;
    padding: 0;
}

.hero-photo-item {
    overflow: hidden;
    position: relative;
    aspect-ratio: 1; /* 正方形に保つ */
}

.hero-photo-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* 汎用的なセクションタイトルのレスポンシブ対応 */
@media (max-width: 768px) {
    /* 見出しタグのフォントサイズ統一（768px以下） */
    h1 {
        font-size: var(--font-size-h1);
    }
    
    h2 {
        font-size: var(--font-size-h2);
    }
    
    h3 {
        font-size: var(--font-size-h3);
    }
    
    h4 {
        font-size: var(--font-size-h4);
    }
    
    h5 {
        font-size: var(--font-size-h5);
    }
    
    h6 {
        font-size: var(--font-size-h6);
    }
}

@media (max-width: 480px) {
    /* 見出しタグのフォントサイズ統一（480px以下） */
    h1 {
        font-size: var(--font-size-h1);
    }
    
    h2 {
        font-size: var(--font-size-h2);
    }
    
    h3 {
        font-size: var(--font-size-h3);
    }
    
    h4 {
        font-size: var(--font-size-h4);
    }
    
    h5 {
        font-size: var(--font-size-h5);
    }
    
    h6 {
        font-size: var(--font-size-h6);
    }
}

@media (max-width: 768px) {
    .photo-gallery-grid {
        grid-template-columns: 1fr; /* 1列表示（縦2段） */
        gap: 15px;
        width: 100%;
        max-width: 100%;
        overflow: hidden;
        box-sizing: border-box;
    }
    
    /* スマホでは上から2枚だけ表示 */
    .photo-gallery-grid .photo-item:nth-child(n+3) {
        display: none;
    }
    
    /* 寿司ページ専用のフォトギャラリー（タブレット版：横2列×縦4行） */
    .photo-gallery-grid-sushi {
        grid-template-columns: repeat(2, 1fr); /* 横2列 */
        grid-template-rows: repeat(4, 1fr); /* 縦4行 */
        gap: 20px; /* 写真と写真の間にスペースを追加（15px → 20px） */
    }
    
    /* 抹茶ページ専用のフォトギャラリー（タブレット版：横2列×縦6行） */
    .photo-gallery-grid-matcha {
        grid-template-columns: repeat(2, 1fr); /* 横2列 */
        grid-template-rows: repeat(6, 1fr); /* 縦6行 */
        gap: 20px; /* 写真と写真の間にスペースを追加（15px → 20px） */
    }
    
    .photo-item {
        width: 100%;
        max-width: 100%;
        overflow: hidden;
        box-sizing: border-box;
        aspect-ratio: 16 / 9; /* 横長のアスペクト比 */
    }
    
    .photo-item img {
        height: 100%;
        width: 100%;
        max-width: 100%;
        object-fit: cover;
        box-sizing: border-box;
    }
    
    /* ヒーローセクション：スマホでは最後から2番目の写真（Sushi Making Japan7.jpg）を1枚表示 */
    .hero-photo-gallery {
        grid-template-columns: 1fr;
        gap: 0;
    }
    
    .hero-photo-item {
        display: none; /* すべて非表示にしてから、最後から2番目だけ表示 */
    }
    
    .hero-photo-item:nth-last-child(2) {
        display: block; /* 最後から2番目（Sushi Making Japan7.jpg）を表示 */
    }
    
    .hero-photo-item img {
        width: 100%;
        height: auto;
        aspect-ratio: auto;
    }
}

@media (max-width: 480px) {
    .photo-gallery-grid {
        grid-template-columns: 1fr; /* 1列表示（縦2段） */
        gap: 10px;
        width: 100%;
        max-width: 100%;
        overflow: hidden;
        box-sizing: border-box;
    }
    
    /* スマホでは上から2枚だけ表示 */
    .photo-gallery-grid .photo-item:nth-child(n+3) {
        display: none;
    }
    
    /* 寿司ページ専用のフォトギャラリー（スマホ版：1列×8行） */
    .photo-gallery-grid-sushi {
        grid-template-columns: 1fr; /* 1列 */
        grid-template-rows: repeat(8, 1fr); /* 縦8行 */
        gap: 15px; /* 写真と写真の間にスペースを追加（10px → 15px） */
    }
    
    /* 抹茶ページ専用のフォトギャラリー（スマホ版：1列×8行） */
    .photo-gallery-grid-matcha {
        grid-template-columns: 1fr; /* 1列 */
        grid-template-rows: repeat(8, 1fr); /* 縦8行 */
        gap: 15px; /* 写真と写真の間にスペースを追加（10px → 15px） */
    }
    
    .photo-item {
        width: 100%;
        max-width: 100%;
        overflow: hidden;
        box-sizing: border-box;
        aspect-ratio: 16 / 9; /* 横長のアスペクト比 */
    }
    
    .photo-item img {
        height: 100%;
        width: 100%;
        max-width: 100%;
        object-fit: cover;
        box-sizing: border-box;
    }
    
    /* ヒーローセクション：スマホでは最後から2番目の写真を1枚表示 */
    .hero-photo-gallery {
        grid-template-columns: 1fr;
        gap: 0;
    }
    
    .hero-photo-item {
        display: none;
    }
    
    .hero-photo-item:nth-last-child(2) {
        display: block;
    }
    
    .hero-photo-item img {
        width: 100%;
        height: auto;
        aspect-ratio: auto;
        min-height: 300px;
    }
    
    /* TripAdvisorロゴを80%に縮小（480px以下） */
    #tripadvisor-widget-container img[src*="Tripadvisor_lockup"],
    #tripadvisor-widget-container img[alt*="TripAdvisor"] {
        max-width: 200px; /* 250px * 0.8 = 200px */
        width: 80%;
        height: auto;
    }
    
    /* TripAdvisorロゴを中央に配置（480px以下） */
    #tripadvisor-widget-container a[href*="tripadvisor"] {
        display: block;
        text-align: center;
        margin: 20px auto 0 auto; /* ロゴの上に20pxの余白を追加 */
        width: 100%;
    }
    
    #tripadvisor-widget-container a[href*="tripadvisor"] img {
        display: block;
        margin: 0 auto;
    }
}

/* 受賞歴テキストのバランス調整 */
.award-section .text-content {
    font-size: var(--font-size-base);
    line-height: 1.8;
    text-align: center;
}

.award-section .text-content div {
    max-width: 900px;
    margin: 0 auto;
}

/* レスポンシブ */
@media (max-width: 768px) {
    /* 横スクロールの完全防止 */
    html, body {
        overflow-x: hidden;
        width: 100%;
        max-width: 100vw;
        position: relative;
    }
    
    /* スライダーとヒーロー画像の見切れ防止 */
    .hero-section,
    .slider-section {
        width: 100% !important;
        max-width: 100vw !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
        padding: 0 !important;
        margin: 0 !important;
        position: relative !important;
    }
    
    .hero-image-container {
        width: 100% !important;
        max-width: 100vw !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
        margin: 0 !important;
        padding: 0 !important;
        position: relative !important;
    }
    
    .hero-image-container img,
    .img-full {
        width: 100% !important;
        max-width: 100vw !important;
        height: auto !important;
        display: block !important;
        box-sizing: border-box !important;
        object-fit: cover !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    
    .swiper-container {
        width: 100% !important;
        max-width: 100vw !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
        margin: 0 !important;
        padding: 0 !important;
        position: relative !important;
    }
    
    .swiper-wrapper {
        width: 100% !important;
        max-width: 100vw !important;
        box-sizing: border-box !important;
    }
    
    .swiper-slide {
        width: 100% !important;
        max-width: 100vw !important;
        box-sizing: border-box !important;
        flex-shrink: 0 !important;
    }
    
    .swiper-slide img {
        width: 100% !important;
        max-width: 100vw !important;
        height: auto !important;
        object-fit: cover !important;
        box-sizing: border-box !important;
        display: block !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    
    * {
        max-width: 100%;
        box-sizing: border-box;
    }
    
    .section {
        padding: 30px 0;
    }
    
    .container {
        padding: 0 15px;
        overflow-x: hidden;
    }
    
    .sns-section .container {
        padding: 0 10px;
    }
    
    .swiper-container {
        height: 400px;
    }
    
    /* ボタンのタッチターゲットサイズ確保 */
    .btn, button, a.btn {
        min-height: 44px;
        min-width: 44px;
        padding: 12px 24px;
        font-size: var(--font-size-base);
        touch-action: manipulation;
        -webkit-tap-highlight-color: var(--brand-rgba);
    }
    
    /* カードの改善 */
    .card {
        padding: var(--spacing-md) var(--spacing-sm);
        margin-bottom: var(--spacing-md);
    }
    
    /* 画像の改善 */
    img {
        height: auto;
        display: block;
    }
    
    /* フォーム要素の改善 */
    input, textarea, select {
        font-size: var(--font-size-base); /* iOSのズームを防ぐ */
        min-height: 44px;
        box-sizing: border-box;
    }
    
    /* テキストの折り返し改善 */
    p, span, div, li, a {
        word-wrap: break-word;
        overflow-wrap: break-word;
    }
    
    /* フレックスボックスの改善 */
    .row, .row-gutter-lg, .row-gutter-none {
        margin-left: 0;
        margin-right: 0;
    }
    
    /* グリッドの改善 */
    .grid-wrapper, .grid-full {
        overflow-x: hidden;
    }
    
    .heading-block-main {
        margin-top: 20px;
        margin-bottom: 30px;
    }
    
    .heading-block-main h2,
    .heading-section h2,
    h1, h2, h3 {
        font-size: var(--font-size-h2);
        line-height: 1.4;
    }
    
    .heading {
        font-size: var(--font-size-h5);
        margin-top: var(--spacing-md);
        margin-bottom: var(--spacing-md);
        line-height: 1.4;
    }
    
    
    .text-content,
    .faq-section .text-content,
    .faq-section p,
    .card-text,
    .list-text {
        font-size: var(--font-size-sm); /* 15px → 14pxに統一 */
        line-height: 1.7;
    }
    
    /* SNSセクションの改善 */
    .sns-section {
        padding: 30px 0;
    }
    
    .sns-row {
        gap: 5px;
        padding: 0 10px;
        flex-wrap: nowrap;
        justify-content: center;
    }
    
    .sns-row > div {
        padding: 0;
        flex: 0 0 auto;
        min-width: 0;
    }
    
    .sns-icon {
        padding: 8px;
        width: auto;
        max-width: none;
    }
    
    .sns-icon img {
        max-width: 60px;
        width: 60px;
        height: 60px;
        margin: 0;
    }
    
    .sns-icon-youtube {
        padding: 8px;
    }
    
    .sns-icon-youtube img {
        max-width: 60px;
        width: 60px;
        height: 60px;
    }
    
    /* YouTube動画を他の写真と同じサイズに（768px以下） */
    .video-wrapper {
        width: 100% !important;
        max-width: 100% !important;
        padding-bottom: 56.25% !important; /* 16:9のアスペクト比 */
        margin: 0 auto;
    }
    
    /* プレスリリースコンテンツ（スマホ版） */
    .press-content {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        flex-wrap: nowrap !important;
    }
    
    .press-link-wrapper {
        display: block !important;
        width: 100% !important;
        flex: 0 0 auto !important;
        float: none !important;
        clear: both !important;
    }
    
    .press-link {
        display: block !important;
        width: 100% !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }
    
    .press-text {
        display: block !important;
        width: 100% !important;
        font-size: 10px !important;
        flex: 0 0 auto !important;
        float: none !important;
        clear: both !important;
        margin-top: var(--spacing-sm) !important;
    }
    
    /* スマホで非表示にするセクション（メニューから確認可能） */
    .gallery-section,
    /* .press-section, */ /* Removed - スマホでも表示 */
    .license-section {
        display: none !important;
    }
    
    /* SNSセクションとYouTubeセクションはスマホでも表示 */
    .sns-section,
    .video-section {
        display: block !important;
    }
    
    /* プレスリリースセクションもスマホで表示 */
    .press-section {
        display: block !important;
    }
    
    /* about-sectionはスマホでも表示 */
    .about-section {
        display: block;
        padding-bottom: 10px; /* 余白を減らす */
    }
    
    /* about-sectionのテキストコンテンツの下の余白を減らす */
    .about-section .text-content {
        margin-bottom: 10px;
    }
    
    /* create-eat-sectionはスマホでも表示 */
    .create-eat-section {
        display: block;
        padding-top: 10px; /* 余白を減らす */
        padding-bottom: 30px;
    }
    
    /* create-eat-sectionのレイアウト（768px以下） */
    .create-eat-section .row {
        flex-direction: column;
        gap: 30px;
    }
    
    .create-eat-section .col-xs-12,
    .create-eat-section .col-sm-6 {
        flex: 0 0 100%;
        width: 100%;
        max-width: 100%;
        margin-bottom: 30px;
    }
    
    .create-eat-section .card-img {
        width: 100%;
        margin-bottom: 20px;
    }
    
    .create-eat-section .card-img img {
        width: 100%;
        height: auto;
        object-fit: cover;
        min-height: 250px;
    }
    
    .create-eat-section .heading {
        font-size: var(--font-size-h4);
        margin-top: var(--spacing-sm);
        margin-bottom: var(--spacing-sm);
    }
    
    
    .create-eat-section .card-text {
        font-size: var(--font-size-sm); /* 15px → 14pxに統一 */
        line-height: 1.8;
        margin-bottom: 20px;
    }
    
    /* サービスセクション（sushi-section、matcha-section、service-detail-section）を非表示（スマホでは「サービスを見る」ボタンに集約） */
    /* index.htmlのみ非表示、sushimakingjapan.htmlとmatchamakingjapan.htmlでは表示 */
    body:not([data-page="sushi"]):not([data-page="matcha"]) .sushi-section,
    body:not([data-page="sushi"]):not([data-page="matcha"]) .matcha-section,
    #service-detail-section {
        display: none !important;
    }
    
    /* sushimakingjapan.htmlとmatchamakingjapan.htmlでは表示 */
    body[data-page="sushi"] .sushi-section,
    body[data-page="matcha"] .matcha-section {
        display: block !important;
    }
    
    /* サービスセクション内のカードを表示 */
    .sushi-section .card,
    .sushi-section .card-img,
    .sushi-section .card-text,
    .sushi-section .heading,
    .sushi-section .btn-wrapper,
    .sushi-section .btn,
    .matcha-section .card,
    .matcha-section .card-img,
    .matcha-section .card-text,
    .matcha-section .heading,
    .matcha-section .btn-wrapper,
    .matcha-section .btn,
    .sushi-section .col-xs-12,
    .sushi-section .col-sm-12,
    .sushi-section .col-md-6,
    .matcha-section .col-xs-12,
    .matcha-section .col-sm-12,
    .matcha-section .col-md-6,
    .sushi-section .row,
    .matcha-section .row,
    .sushi-section .grid-wrapper,
    .matcha-section .grid-wrapper {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }
    
    /* サービスセクション内のカードレイアウト */
    .sushi-section .row,
    .matcha-section .row {
        flex-direction: column;
        gap: 30px;
    }
    
    .sushi-section .col-xs-12,
    .sushi-section .col-sm-12,
    .sushi-section .col-md-6,
    .matcha-section .col-xs-12,
    .matcha-section .col-sm-12,
    .matcha-section .col-md-6 {
        flex: 0 0 100%;
        width: 100%;
        max-width: 100%;
        margin-bottom: 30px;
    }
    
    .sushi-section .card,
    .matcha-section .card {
        width: 100%;
        max-width: 600px; /* フォトギャラリーと同じ最大幅 */
        margin: 0 auto 40px; /* 30px → 40px (セクション間を明確に) */
        padding: 30px 20px;
        border: 1px solid var(--border);
        border-radius: 12px;
        box-shadow: var(--shadow);
    }
    
    .sushi-section .card-img,
    .matcha-section .card-img {
        width: 100%;
        max-width: 600px; /* フォトギャラリーと同じ最大幅 */
        height: 250px; /* フォトギャラリーと同じ高さ */
        margin: 0 auto 20px; /* 中央揃え */
    }
    
    .sushi-section .card-img img,
    .sushi-section .img-responsive img,
    .matcha-section .card-img img,
    .matcha-section .img-responsive img {
        width: 100%;
        max-width: 100%;
        height: 250px;
        object-fit: cover;
    }
    
    /* ミッションセクションは全て表示（スマホでも） */
    .mission-section .achievement-box {
        display: block !important;
    }
    
    .mission-section p[data-i18n="mission_3"] {
        display: block !important;
        font-size: 13px !important; /* 11px + 2px = 13px */
        line-height: 1.6 !important;
    }
    
    /* サービスセクションは表示（カードコンテンツも含む） */
    .service-section {
        display: block !important;
        padding: 30px 0 !important;
    }
    
    /* サービスセクション内のカードを表示 */
    .service-section .card,
    .service-section .card-img,
    .service-section .card-text,
    .service-section .heading,
    .service-section .btn-wrapper,
    .service-section .btn,
    .service-section .col-xs-12,
    .service-section .col-sm-12,
    .service-section .col-md-6,
    .service-section .row,
    .service-section .grid-wrapper {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }
    
    /* サービスセクション内のカードレイアウト */
    .service-section .row {
        flex-direction: column;
        gap: 30px;
    }
    
    .service-section .col-xs-12,
    .service-section .col-sm-12,
    .service-section .col-md-6 {
        flex: 0 0 100%;
        width: 100%;
        max-width: 100%;
        margin-bottom: 30px;
    }
    
    .service-section .card {
        width: 100%;
        max-width: 100%;
        margin: 0 auto 30px;
        padding: 30px 20px;
    }
    
    .service-section .card-img,
    .service-section .img-responsive {
        width: 100%;
        max-width: 100%;
        height: 200px;
        margin-bottom: 7px;
    }
    
    .service-section .card-img img,
    .service-section .img-responsive img {
        width: 100%;
        max-width: 100%;
        height: 200px; /* フォトギャラリーと同じサイズ（モバイル） */
        object-fit: cover;
    }
    
    /* サービスセクション内の見出しは、統一されたh2スタイルを使用 */
    
    /* サービスセクション内のカードテキストとボタンは、統一されたスタイルを使用 */
    
    /* TripAdvisor写真を元のサイズに（モバイル） */
    .award-image-large,
    .award-image-large img {
        max-width: 100%;
        width: 100%;
    }
    
    /* 受賞歴セクションは表示 */
    .award-section {
        display: block !important;
        padding: 30px 0 !important;
    }
    
    /* レビューセクションは表示 */
    .reviews-section {
        display: block !important;
        padding: 30px 0 !important;
    }
    
    /* ニュースセクションは表示 */
    .news-section {
        display: block !important;
        padding: 30px 0 !important;
    }
    
    /* 会社情報セクションは非表示（スマホのトップページ） */
    .corporate-section {
        display: none !important;
    }
    
    /* お問い合わせセクションは表示 */
    .contact-section {
        display: block !important;
        padding: 40px 0 !important;
    }
    
    /* スライダーセクションの高さを調整 */
    .slider-section {
        padding: 0 !important;
    }
    
    /* 見出しセクションの余白を調整 */
    .heading-section {
        padding: 15px 0 !important;
    }
    
    /* ミッションセクションの余白を調整 */
    .mission-section {
        padding: 20px 0 !important;
    }
    
    /* モバイルヘッダー - 左サイドバー + 右言語切り替え */
    html {
        overflow-x: hidden !important;
        overflow-y: auto !important;
        width: 100% !important;
        max-width: 100vw !important;
        -webkit-overflow-scrolling: touch !important;
        touch-action: pan-y !important;
        position: relative !important;
        height: auto !important;
    }
    
    body {
        padding-top: 0;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        width: 100% !important;
        max-width: 100vw !important;
        position: relative !important;
        height: auto !important;
        -webkit-overflow-scrolling: touch !important;
        touch-action: pan-y !important;
    }
    
    body.menu-open {
        overflow: hidden !important;
        position: fixed !important;
        width: 100% !important;
        height: 100vh !important;
        height: 100dvh !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        touch-action: none !important;
    }
    
    html.menu-open {
        overflow: hidden !important;
        height: 100vh !important;
        height: 100dvh !important;
        touch-action: none !important;
    }
    
    /* メニューが閉じている時はスクロール可能 */
    body:not(.menu-open) {
        overflow-y: auto !important;
        overflow-x: hidden !important;
        position: relative !important;
        height: auto !important;
        width: 100% !important;
        -webkit-overflow-scrolling: touch !important;
        touch-action: pan-y !important;
    }
    
    html:not(.menu-open) {
        overflow-y: auto !important;
        overflow-x: hidden !important;
        -webkit-overflow-scrolling: touch !important;
        touch-action: pan-y !important;
        position: relative !important;
        height: auto !important;
    }
    
    /* すべての要素でスクロール可能にする */
    html, body,
    p, div, span, h1, h2, h3, h4, h5, h6, .text-content, .container, 
    .section, .card, .card-text, .list-text, .heading, .heading-block-main,
    .mission-section, .award-section, .reviews-section, .news-section,
    .corporate-section, .contact-section, li, ul, ol, article, main, aside,
    .inner, .inner-lg, .inner-vertical, .grid-wrapper, .row, .col-xs-12,
    .col-sm-12, .col-md-6, .col-md-12, .btn-wrapper, .form-group, .contact-form {
        touch-action: pan-y !important;
        -webkit-overflow-scrolling: touch !important;
        -webkit-user-select: text !important;
        user-select: text !important;
        -webkit-user-drag: none;
        pointer-events: auto !important;
    }
    
    /* スクロール可能なコンテナ（768px以下） */
    .container, .container-sm, .container-full, .section {
        overflow: visible !important;
        position: relative !important;
        touch-action: pan-y !important;
        -webkit-overflow-scrolling: touch !important;
    }
    
    /* メニューオーバーレイ（フルスクリーンメニューの場合は不要だが、互換性のため残す） */
    .menu-overlay {
        display: none !important; /* フルスクリーンメニューでは不要 */
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        background: transparent !important; /* フルスクリーンメニューでは透明 */
        z-index: 2147483646 !important;
        opacity: 0;
        transition: opacity var(--transition);
        pointer-events: none !important;
    }
    
    body.menu-open .menu-overlay {
        display: none !important; /* フルスクリーンメニューでは表示しない */
        opacity: 0 !important;
    }
    
    .header-container {
        flex-wrap: nowrap;
        gap: 10px;
        position: relative;
        padding: 0 12px;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        max-width: 100vw;
        overflow-x: hidden;
        height: 100%;
        min-height: 60px;
        display: flex;
    }
    
    .site-header {
        position: sticky;
        top: 0;
        z-index: 1000;
        padding: 12px 0;
        box-shadow: var(--shadow);
        background: var(--brand-gradient);
        height: auto;
        min-height: 60px;
        display: flex;
        align-items: center;
        width: 100%;
        max-width: 100vw;
        overflow-x: hidden;
    }
    
    /* メニューが開いている時、ヘッダーはメニューの下に */
    body.menu-open .site-header {
        z-index: 1000 !important; /* メニュー(99999)より低く */
    }
    
    /* メニューが開いている時、他の要素がメニューを覆わないように */
    body.menu-open .section,
    body.menu-open .container,
    body.menu-open .card,
    body.menu-open .swiper-container,
    body.menu-open .swiper-slide,
    body.menu-open img,
    body.menu-open video,
    body.menu-open iframe {
        z-index: auto !important;
        position: relative !important;
    }
    
    /* メニューが開いている時、すべての要素を下げる（古いルールを削除し、新しいルールに統合） */
    
    /* メニューとオーバーレイは例外 - 最上位に（最高優先度） - 最初に定義（重要：他のルールより先に、iOS Safari対応） */
    body.menu-open .header-nav,
    body.menu-open .header-nav.active,
    body.menu-open #header-nav,
    body.menu-open #header-nav.active,
    html.menu-open .header-nav,
    html.menu-open .header-nav.active,
    html.menu-open #header-nav,
    html.menu-open #header-nav.active,
    body.menu-open nav.header-nav,
    body.menu-open nav.header-nav.active,
    body.menu-open nav#header-nav,
    body.menu-open nav#header-nav.active {
        z-index: 2147483647 !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100% !important;
        max-width: 100vw !important;
        height: 100vh !important;
        height: 100dvh !important;
        display: flex !important;
        transform: translateZ(0) !important; /* iOS Safari対応 */
        -webkit-transform: translateZ(0) !important; /* iOS Safari対応 */
        backface-visibility: hidden !important; /* iOS Safari対応 */
        -webkit-backface-visibility: hidden !important; /* iOS Safari対応 */
    }
    
    body.menu-open .menu-overlay,
    body.menu-open #menu-overlay,
    html.menu-open .menu-overlay,
    html.menu-open #menu-overlay {
        z-index: 2147483646 !important;
        position: fixed !important;
        display: block !important;
    }
    
    /* メニューが開いている時、すべてのfixed/sticky要素を確実に下げる（iOS Safari対応） */
    body.menu-open .site-header,
    body.menu-open header,
    body.menu-open .header-container,
    body.menu-open .mobile-menu-toggle,
    body.menu-open .language-switcher,
    body.menu-open #chatbot-container,
    body.menu-open #chatbot-toggle,
    body.menu-open #chatbot-window {
        z-index: 1 !important;
        position: relative !important; /* stickyを解除してスタッキングコンテキストを解除 */
        transform: none !important; /* iOS Safari対応：transformを解除 */
        -webkit-transform: none !important; /* iOS Safari対応 */
        opacity: 1 !important; /* iOS Safari対応：opacityを1に */
        filter: none !important; /* iOS Safari対応：filterを解除 */
        backface-visibility: visible !important; /* iOS Safari対応 */
        -webkit-backface-visibility: visible !important; /* iOS Safari対応 */
    }
    
    /* メニューが開いている時、すべてのsection、div、headerなどを下げる */
    body.menu-open .section,
    body.menu-open .container,
    body.menu-open .card,
    body.menu-open header,
    body.menu-open .site-header,
    body.menu-open .header-container,
    body.menu-open .swiper-container,
    body.menu-open .swiper-slide,
    body.menu-open img,
    body.menu-open video,
    body.menu-open iframe,
    body.menu-open .slider-section,
    body.menu-open .gallery-section,
    body.menu-open .mission-section,
    body.menu-open .service-section,
    body.menu-open .sushi-section,
    body.menu-open .matcha-section,
    body.menu-open .award-section,
    body.menu-open .reviews-section,
    body.menu-open .news-section,
    body.menu-open .corporate-section,
    body.menu-open .contact-section {
        z-index: auto !important;
        position: relative !important;
    }
    
    /* スライダーセクションの上部マージンを調整 */
    .slider-section {
        margin-top: 0;
        padding-top: 0;
    }
    
    /* ヘッダーロゴを非表示 */
    .header-logo {
        display: none !important;
    }
    
    /* メニューのロゴを完全に非表示（スマホ） */
    .header-nav .header-logo-wrapper {
        display: none !important; /* スマホでは常に非表示 */
    }
    
    .header-nav.active .header-logo-wrapper,
    #header-nav.active .header-logo-wrapper,
    body.menu-open .header-nav.active .header-logo-wrapper,
    body.menu-open #header-nav.active .header-logo-wrapper {
        display: none !important; /* メニューが開いた時も非表示 */
    }
    
    /* 左側のメニューボタン */
    .mobile-menu-toggle {
        display: flex !important;
        order: 1;
        padding: 10px;
        background: var(--white-light);
        border-radius: 8px;
        min-width: 48px;
        min-height: 48px;
        flex-shrink: 0;
        border: 2px solid var(--white-light);
        cursor: pointer !important;
        transition: all var(--transition);
        flex-direction: column;
        justify-content: center;
        align-items: center;
        touch-action: manipulation;
        margin-left: 0;
        margin-right: auto;
        z-index: 1001 !important;
        pointer-events: auto !important;
        position: relative;
    }
    
    .mobile-menu-toggle:hover {
        background: var(--white-35);
    }
    
    .mobile-menu-toggle.active {
        background: var(--white-45);
        border-color: var(--white-60);
    }
    
    .mobile-menu-toggle span {
        width: 24px;
        height: 3px;
        background: var(--text-white);
        margin: 3px 0;
        border-radius: 2px;
        transition: all var(--transition);
        display: block;
        box-shadow: var(--shadow);
    }
    
    .mobile-menu-toggle.active span:nth-child(1) {
        transform: rotate(45deg) translate(8px, 8px);
    }
    
    .mobile-menu-toggle.active span:nth-child(2) {
        opacity: 0;
    }
    
    .mobile-menu-toggle.active span:nth-child(3) {
        transform: rotate(-45deg) translate(7px, -7px);
    }
    
    /* 右側の言語切り替え */
    .language-switcher {
        display: flex !important;
        order: 2;
        padding: 4px !important;
        flex-shrink: 0;
        background: rgba(255, 255, 255, 0.95) !important;
        border-radius: 40px !important;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
        position: absolute !important;
        right: 12px !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        height: fit-content !important;
        z-index: 1001;
        gap: 0 !important;
        border: 1px solid rgba(255, 157, 10, 0.2) !important;
        backdrop-filter: blur(10px) !important;
        align-self: center !important;
    }
    
    .lang-btn {
        padding: 12px 22px !important;
        font-size: var(--font-size-base) !important;
        border: none;
        background: transparent !important;
        color: var(--text-secondary);
        cursor: pointer;
        border-radius: 50px !important;
        font-weight: 600;
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
        font-family: var(--font-family);
        touch-action: manipulation;
        position: relative;
        z-index: 1;
        min-width: 85px;
        text-align: center;
    }
    
    .lang-btn:hover {
        background: transparent !important;
        color: var(--brand-primary) !important;
    }
    
    .lang-btn.active {
        background: linear-gradient(135deg, #ff9d0a 0%, #ffbd59 100%) !important;
        color: var(--text-white) !important;
        box-shadow: 0 2px 6px rgba(255, 157, 10, 0.4) !important;
        transform: scale(1.02) !important;
    }
    
    /* フルスクリーンメニュー（画面全体を覆う、iOS Safari対応） */
    .header-nav,
    #header-nav,
    nav.header-nav,
    nav#header-nav {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100% !important;
        max-width: 100vw !important;
        height: 100vh !important;
        height: 100dvh !important; /* 動的ビューポート高さ */
        display: none;
        flex-direction: column;
        justify-content: flex-start !important;
        align-items: center;
        background: linear-gradient(135deg, #ffbd59 0%, #ff9d0a 100%) !important;
        padding-top: 20px !important;
        z-index: 2147483647 !important; /* 最大値（全ての要素より最上位に） */
        overflow-y: auto;
        overflow-x: hidden;
        -webkit-overflow-scrolling: touch;
        transition: opacity 0.3s ease, visibility 0.3s ease;
        opacity: 0;
        visibility: hidden;
        transform: translateZ(0) !important; /* iOS Safari対応：ハードウェアアクセラレーション */
        -webkit-transform: translateZ(0) !important; /* iOS Safari対応 */
        filter: none !important;
        backface-visibility: hidden !important; /* iOS Safari対応 */
        -webkit-backface-visibility: hidden !important; /* iOS Safari対応 */
        isolation: isolate !important;
        will-change: auto !important;
    }
    
    .header-nav.active,
    #header-nav.active,
    nav.header-nav.active,
    nav#header-nav.active,
    body.menu-open .header-nav.active,
    body.menu-open #header-nav.active,
    html.menu-open .header-nav.active,
    html.menu-open #header-nav.active {
        display: flex !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        z-index: 2147483647 !important;
        transform: translateZ(0) !important; /* iOS Safari対応 */
        -webkit-transform: translateZ(0) !important; /* iOS Safari対応 */
        filter: none !important;
        backface-visibility: hidden !important; /* iOS Safari対応 */
        -webkit-backface-visibility: hidden !important; /* iOS Safari対応 */
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
    }
    
    /* フルスクリーンメニュー内のコンテンツ（上部配置） */
    .header-nav ul {
        flex-direction: column;
        gap: 4px !important; /* 6px → 4px (間隔をさらに小さく) */
        width: 100%;
        max-width: 90%;
        margin: 0 auto;
        padding: 0 15px 20px 15px !important; /* 下部パディングを追加して最後の項目が見切れないように */
        list-style: none;
        align-items: center;
        justify-content: flex-start !important; /* center → flex-start (上から配置) */
        overflow-y: auto !important; /* スクロールを有効化 */
        overflow-x: hidden !important;
        flex-shrink: 0;
        pointer-events: auto !important;
        order: 1; /* ロゴの後に配置 */
        max-height: calc(100vh - 80px) !important; /* 画面1枚に収まるように高さを制限 */
        -webkit-overflow-scrolling: touch !important;
    }
    
    .header-nav > ul > li {
        width: 100%;
        max-width: 500px;
        border: none;
        position: relative;
        text-align: center;
    }
    
    
    .header-nav > ul > li:not(.dropdown):not(.service-container) {
        z-index: 0;
    }
    
    /* ドロップダウンメニューをサービスコンテナスタイルに変換（モバイル） */
    .header-nav > ul > li.dropdown {
        width: 100%;
        margin: 0;
        padding: 0;
    }
    
    .header-nav > ul > li.dropdown > a {
        display: none !important; /* 元のドロップダウンボタンを非表示 */
    }
    
    /* ドロップダウンメニューをサービスコンテナスタイルに変換（モバイル） */
    .header-nav > ul > li.dropdown .dropdown-menu {
        position: relative !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        margin: 0 !important;
        padding: 8px !important; /* 10px → 8px (さらに小さく) */
        background: var(--white-light) !important; /* 0.2 → 0.15 (少し薄く) */
        backdrop-filter: blur(10px) !important;
        border-radius: 10px !important; /* 12px → 10px (さらに小さく) */
        border: 2px solid var(--white-medium) !important; /* 0.3 → 0.25 (少し薄く) */
        box-shadow: var(--shadow) !important;
        display: block !important;
        width: 100% !important;
        min-height: 0 !important;
        height: auto !important;
        z-index: 1;
        top: 0;
        left: 0;
    }
    
    .header-nav > ul > li.dropdown .dropdown-menu::before {
        content: 'サービス';
        display: block;
        font-size: 14px !important; /* 16px → 14px (さらに小さく) */
        font-weight: 600 !important; /* 700 → 600 (少し細く) */
        color: var(--text-white);
        text-align: left !important; /* center → left (左寄せ) */
        margin-bottom: 4px !important; /* 6px → 4px (さらに小さく) */
        text-shadow: 0 1px 2px var(--black-light);
        padding-left: 0; /* 左寄せのため */
    }
    
    /* サービスタイトルにエッグロゴを追加 */
    .header-nav > ul > li.dropdown .dropdown-menu::after {
        content: '';
        display: none; /* タイトルにはロゴを表示しない */
    }
    
    /* 英語の場合 */
    html[data-lang="en"] .header-nav > ul > li.dropdown .dropdown-menu::before,
    body[data-lang="en"] .header-nav > ul > li.dropdown .dropdown-menu::before {
        content: 'Services';
    }
    
    .header-nav > ul > li.dropdown .dropdown-menu li {
        margin: 0 0 8px 0 !important;
        padding: 0 !important;
        display: block !important;
        width: 100% !important;
    }
    
    .header-nav > ul > li.dropdown .dropdown-menu li:last-child {
        margin-bottom: 0 !important;
    }
    
    .header-nav > ul > li.dropdown .dropdown-menu a {
        padding: 8px 14px !important; /* 10px 16px → 8px 14px (さらに小さく) */
        font-size: 13px !important; /* 14px → 13px (さらに小さく) */
        font-weight: 600 !important; /* 700 → 600 (少し細く) */
        color: var(--text-white) !important;
        background: var(--white-rgba-20) !important; /* 0.25 → 0.2 (少し薄く) */
        border: none !important;
        border-radius: 10px !important; /* 12px → 10px (さらに小さく) */
        text-decoration: none !important;
        text-align: left !important; /* center → left (左寄せ) */
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
        box-shadow: var(--shadow) !important;
        text-shadow: 0 1px 2px var(--black-light) !important;
        min-height: 38px !important; /* 42px → 38px (さらに小さく) */
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important; /* center → flex-start (左寄せ) */
        margin: 0 0 4px 0 !important; /* 6px → 4px (間隔をさらに小さく) */
        position: relative !important;
        width: 100% !important;
        gap: 0 !important; /* 寿司ロゴを削除するのでgapも0に */
    }
    
    /* ドロップダウンメニュー内の寿司ロゴを削除 */
    .header-nav > ul > li.dropdown .dropdown-menu a::before {
        display: none !important; /* 寿司ロゴを削除 */
    }
    
    .header-nav > ul > li.dropdown .dropdown-menu a:hover,
    .header-nav > ul > li.dropdown .dropdown-menu a:active {
        background: var(--white-medium) !important;
        transform: scale(1.03) translateY(-2px) !important;
        box-shadow: var(--shadow) !important;
    }
    
    .header-nav > ul > li:first-child {
        border-top: none;
    }
    
    .header-nav > ul > li:last-child {
        border-bottom: none;
    }
    
    .header-nav a {
        padding: 16px 24px !important; /* 大きく */
        font-size: 18px !important; /* 大きく */
        min-height: 56px !important; /* 大きく */
        width: auto !important; /* 横幅を縮める */
        max-width: 90% !important; /* 最大幅を制限 */
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important; /* center → flex-start (左寄せ) */
        transition: all var(--transition);
        font-weight: 600 !important;
        position: relative;
        color: var(--text-white) !important;
        text-decoration: none;
        touch-action: manipulation;
        -webkit-tap-highlight-color: var(--white-20);
        pointer-events: auto !important;
        cursor: pointer !important;
        z-index: 999 !important;
        border-radius: 12px !important;
        margin: 0;
        background: var(--white-rgba-20) !important;
        backdrop-filter: blur(10px);
        box-shadow: var(--shadow) !important;
        text-shadow: 0 1px 2px var(--black-light);
        gap: 12px !important; /* ロゴとテキストの間隔 */
    }
    
    /* メニューアイコン（寿司ロゴ）のスタイル - 768px以下 */
    .header-nav a img.menu-icon,
    .header-nav a .menu-icon,
    .header-nav > ul > li > a > img.menu-icon,
    .header-nav > ul > li > a > .menu-icon {
        object-fit: contain !important;
        border-radius: 50% !important;
        background: var(--white-heavy) !important;
        padding: 4px !important;
        width: 32px !important;
        height: 32px !important;
        min-width: 32px !important;
        min-height: 32px !important;
        flex-shrink: 0 !important;
        margin-right: 0 !important;
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        position: relative !important;
        z-index: 1 !important;
    }
    
    /* メニューアイコン（寿司ロゴ）のスタイル - ニュースと同じスタイル */
    .header-nav a img.menu-icon,
    .header-nav a .menu-icon,
    .header-nav > ul > li > a > img.menu-icon,
    .header-nav > ul > li > a > .menu-icon,
    .header-nav ul li a img,
    .header-nav ul li a img.menu-icon {
        object-fit: contain !important;
        border-radius: 50% !important;
        background: var(--white-heavy) !important;
        padding: 3px !important;
        width: 24px !important;
        height: 24px !important;
        min-width: 24px !important;
        min-height: 24px !important;
        max-width: 24px !important;
        max-height: 24px !important;
        flex-shrink: 0 !important;
        margin-right: 0 !important;
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        position: relative !important;
        z-index: 1 !important;
    }
    
    /* 画像が非表示になっている可能性があるため、強制的に表示 */
    .header-nav a img {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }
    
    /* メニューテキストのスタイル */
    .header-nav a span {
        display: inline-block !important;
    }
    
    /* 各メニュー項目の寿司ロゴを削除（::beforeは使用しない） */
    .header-nav a::before {
        display: none !important;
    }
    
    .header-nav a:hover,
    .header-nav a:active {
        background: var(--white-medium) !important; /* 0.35 → 0.45 (見やすく) */
        text-decoration: none;
        transform: scale(1.03) translateY(-2px);
        box-shadow: var(--shadow) !important; /* 影を濃く */
    }
    
    /* ドロップダウンメニュー（サイドバー内） - サービスコンテナスタイルに変換 */
    .header-nav > ul > li.dropdown {
        display: flex;
        flex-direction: column;
        width: 100%;
        position: relative;
        z-index: 1;
        margin: 0 !important;
        padding: 0 !important;
    }
    
    .header-nav > ul > li.dropdown > a {
        display: none !important; /* 元のドロップダウンボタンを非表示（サービスコンテナスタイルに変換） */
    }
    
    .header-nav > ul > li.dropdown .dropdown-menu {
        position: relative !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        margin: 0 !important;
        padding: 16px !important;
        background: var(--white-rgba-20) !important;
        backdrop-filter: blur(10px) !important;
        border-radius: 18px !important;
        border: 2px solid var(--white-rgba-30) !important;
        box-shadow: var(--shadow) !important;
        display: block !important;
        width: 100% !important;
        min-height: 0 !important;
        height: auto !important;
        z-index: 1;
        top: 0;
        left: 0;
    }
    
    /* 空のドロップダウンメニューを非表示 */
    .dropdown-menu:empty {
        display: none !important;
        height: 0 !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        border: none !important;
        background: transparent !important;
    }
    
    /* ドロップダウンメニューに子要素がない場合は非表示 */
    .header-nav > ul > li.dropdown:has(.dropdown-menu:empty) .dropdown-menu {
        display: none !important;
        height: 0 !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        border: none !important;
        background: transparent !important;
    }
    
    .dropdown-menu li {
        border-bottom: none;
        margin: 0 0 6px 0;
        padding: 0;
        display: block;
        width: 100%;
        position: relative;
        z-index: 1;
    }
    
    .dropdown-menu li:last-child {
        margin-bottom: 0;
    }
    
    .dropdown-menu a {
        color: var(--text-white) !important;
        padding: 10px 16px 10px 40px; /* 小さめのボタンサイズに調整 */
        font-size: 15px !important; /* 小さめのフォントサイズ */
        line-height: 1.5;
        margin: 0 0 8px 0; /* ボタン間の余白を減らす */
        min-height: 44px; /* 小さめの高さ */
        font-weight: 600 !important;
        position: relative;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        touch-action: manipulation;
        -webkit-tap-highlight-color: var(--white-20);
        z-index: 1;
        border-radius: 12px; /* 小さめのボタンに合わせて角丸を小さく */
        background: var(--white-12) !important;
        backdrop-filter: blur(10px);
        transition: all var(--transition);
        box-shadow: 0 2px 6px var(--black-medium) !important;
        border: 1px solid var(--white-rgba-20) !important;
        text-shadow: 0 1px 2px var(--black-light);
    }
    
    .dropdown-menu li:last-child a {
        margin-bottom: 0;
    }
    
    .dropdown-menu a::before {
        content: '▶ ';
        position: absolute;
        left: 16px; /* 小さめのボタンに合わせて位置を調整 */
        color: var(--white-full) !important;
        font-size: 12px !important; /* 小さめのアイコンサイズ */
        font-weight: bold;
    }
    
    .dropdown-menu a:hover,
    .dropdown-menu a:active {
        background: var(--white-25) !important;
        transform: scale(1.02) translateX(4px); /* 小さめのボタンに合わせて移動量を減らす */
        box-shadow: 0 3px 12px var(--black-medium) !important;
        border-color: var(--white-35) !important;
    }
    
    /* 画面がはみ出さないようにする（包括的） */
    * {
        max-width: 100%;
        box-sizing: border-box;
    }
    
    html, body {
        overflow-x: hidden !important;
        width: 100% !important;
        max-width: 100vw !important;
    }
    
    body {
        position: relative;
        width: 100%;
        max-width: 100vw;
        overflow-x: hidden;
    }
    
    /* すべてのコンテナとセクション */
    .container, .section, .row, .col-xs-6, .col-sm-3, .col-sm-6 {
        max-width: 100%;
        overflow-x: hidden;
    }
    
    /* 画像とメディア */
    img, video, iframe, embed, object {
        max-width: 100% !important;
        height: auto;
        display: block;
    }
    
    /* テーブル */
    table {
        width: 100%;
        max-width: 100%;
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    
    /* フォーム要素 */
    input, textarea, select {
        max-width: 100%;
        width: 100%;
        box-sizing: border-box;
    }
    
    /* ボタンとリンク */
    .btn, button, a {
        max-width: 100%;
        word-wrap: break-word;
        overflow-wrap: break-word;
    }
    
    /* テキストの折り返し */
    p, span, div, li, h1, h2, h3, h4, h5, h6 {
        word-wrap: break-word;
        overflow-wrap: break-word;
        hyphens: auto;
        max-width: 100%;
    }
    
    /* フレックスボックスとグリッド */
    .row, .row-gutter-lg, .row-gutter-none {
        margin-left: 0;
        margin-right: 0;
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }
    
    .gallery-section .col-xs-6.col-sm-3 {
        flex: 0 0 50%;
        max-width: 50%;
        width: 50%;
        box-sizing: border-box;
    }
    
    .gallery-section img {
        height: 200px;
        width: 100%;
        object-fit: cover;
        max-width: 100%;
    }
    
    /* カード画像の改善 */
    .card-img img {
        width: 100%;
        max-width: 100%;
        height: auto;
        object-fit: cover;
    }
    
    /* サービスカードの改善 */
    .service-section .card {
        width: 100%;
        max-width: 100%;
        margin-left: 0;
        margin-right: 0;
    }
    
    /* SEOとUX向上のための追加改善 */
    /* 読み込みパフォーマンス（HTML属性として設定） */
    
    /* タッチターゲットサイズの確保 */
    a, button, .btn, input[type="submit"], input[type="button"] {
        min-height: 44px;
        min-width: 44px;
        touch-action: manipulation;
        -webkit-tap-highlight-color: var(--brand-rgba);
    }
    
    /* フォントの最適化 */
    body {
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        text-rendering: optimizeLegibility;
    }
    
    /* スクロールの改善 */
    html {
        -webkit-overflow-scrolling: touch;
    }
    
    /* フォーカス可視化（アクセシビリティ） */
    *:focus-visible {
        outline: 3px solid var(--brand-primary);
        outline-offset: 2px;
        border-radius: 4px;
    }
    
    /* リンクのホバー効果 */
    a:not(.header-nav a):not(.dropdown-menu a):not(.btn):hover {
        text-decoration: underline;
        text-underline-offset: 3px;
    }
    
    .footer-content {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    
    .footer-section {
        text-align: center;
    }
    
    .contact-form-wide {
        max-width: 100%;
        width: 100%;
    }
    
    /* フォームの改善 */
    .form-group {
        width: 100%;
        max-width: 100%;
        margin-bottom: 20px;
    }
    
    .form-group input,
    .form-group textarea,
    .form-group select {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }
    
    /* チェックボックスとラジオボタンの改善（.checkbox-inline以外） */
    .form-group input[type="checkbox"]:not(.checkbox-inline input[type="checkbox"]),
    .form-group input[type="radio"] {
        min-width: 44px;
        min-height: 44px;
        width: 20px;
        height: 20px;
        margin-right: 10px;
    }
    
    /* リンクの改善 */
    a {
        -webkit-tap-highlight-color: var(--brand-rgba);
        touch-action: manipulation;
    }
    
    /* リストの改善 */
    ul, ol {
        padding-left: 20px;
        width: 100%;
        max-width: 100%;
    }
    
    /* テーブルの改善 */
    table {
        width: 100%;
        max-width: 100%;
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    
    /* 受賞歴セクションの改善 */
    .award-section {
        width: 100%;
        max-width: 100%;
    }
    
    .award-image-large {
        width: 100% !important;
        max-width: 100% !important;
    }
    
    .award-image-large img {
        width: 100% !important;
        max-width: 100% !important;
    }
    
    .award-image-small {
        width: 100%;
        max-width: 100%;
    }
    
    /* ニュースセクションの改善 */
    .news-list {
        width: 100%;
        max-width: 100%;
    }
    
    .news-list li {
        width: 100%;
        max-width: 100%;
    }
    
    /* 会社情報セクションの改善 */
    .corporate-section {
        width: 100%;
        max-width: 100%;
    }
    
    /* 会社情報セクションの各項目（社名、代表取締役、所在地、資本金、設立年月日）のフォントサイズを大きく（モバイル） */
    .corporate-section [data-i18n="corporate_text"] {
        padding: 30px 20px !important; /* モバイルではパディングを調整 */
    }
    
    [data-i18n="corporate_text"] span {
        font-size: var(--font-size-base);
        line-height: var(--line-height-base);
        padding: 12px 0;
    }
    
    /* 会社情報セクション内のすべての文字（768px以下） */
    .corporate-section [data-i18n="corporate_text"],
    .corporate-section [data-i18n="corporate_text"] * {
        font-size: var(--font-size-base);
    }
    
    /* レビューセクションの改善 */
    .reviews-section {
        width: 100%;
        max-width: 100%;
    }
    
    #tripadvisor-widget-container {
        width: 100%;
        max-width: 100%;
    }
    
    /* スマホのフォントサイズ（4種類） */
    /* 通常文字: 11.5px（11px + 0.5px） */
    body, p, span, div, li, a, .text-content, .card-text, .list-text, 
    .form-group label, .btn, button {
        font-size: 11.5px !important;
        line-height: 1.6 !important;
    }
    
    /* フォーム要素は16px以上にしてiOSの自動ズームを防ぐ */
    input, textarea, select, .form-control {
        font-size: 16px !important;
        line-height: 1.6 !important;
    }
    
    /* 「海や山にアクティビティがあるように食にもアクティビティ」の下の文章（mission_3）を2px大きく */
    .mission-section p[data-i18n="mission_3"] {
        font-size: 13px !important;
        line-height: 1.6 !important;
    }
    
    /* 「海や山にアクティビティがあるように食にもアクティビティ」の文字: */
    p[data-i18n="mission_1"], 
    .mission-section p[data-i18n="mission_1"],
    .mission-section p:has([data-i18n="mission_1"]),
    .mission-section p[style*="mission_1"],
    p[data-i18n="mission_1"][style*="font-size"] {
        font-size: 15px !important;
        font-weight: 700 !important;
        line-height: 1.6 !important;
    }
    
    /* about_textの最初の部分をmission_1と同じスタイルに（768px以下） */
    .about-text-mission-style {
        font-size: 15px !important;
        font-weight: 700 !important;
        line-height: 1.6 !important;
        color: var(--text-primary);
    }
    
    /* 実績テキスト（全ての掲載サイトにおいて...）: 10px（スマホ） */
    p[data-i18n="achievement_text"],
    .achievement-box p[data-i18n="achievement_text"] {
        font-size: 10px !important;
    }
    
    /* インラインスタイルのfont-sizeを上書き */
    p[data-i18n="achievement_text"][style*="font-size"],
    .achievement-box p[data-i18n="achievement_text"][style*="font-size"] {
        font-size: 10px !important;
    }
    
    /* 小見出し: 12px */
    .make-eat-heading {
        font-size: 16px !important;
        line-height: 1.5 !important;
    }
    
    .service-heading, .faq-category-title {
        font-size: 14px !important;
        line-height: 1.5 !important;
    }
    
    .faq-question, .footer-heading,
    .card-title, .achievement-box h3, .news-list li strong {
        font-size: 12px !important;
        line-height: 1.5 !important;
    }
    
    /* 見出しスタイルの統一（768px以下） */
    h1,
    h2,
    .heading,
    .heading-block-main h2,
    .heading-section h2,
    .section-title,
    .award-title,
    .service-section .heading-block-main h2,
    .service-section h2[data-i18n="service_title"],
    .award-section .heading-block-main h2,
    .award-section h2[data-i18n="award_title"],
    .reviews-section h2[data-i18n="reviews_title"],
    .news-section .heading-block-main h2,
    .news-section h2[data-i18n="news_title"],
    .corporate-section .heading-block-main h2,
    .corporate-section h2[data-i18n="corporate_title"],
    .recruit-section .heading-block-main h2,
    .recruit-section h2[data-i18n="recruit_title"],
    .contact-section .heading-block-main h2,
    .contact-section h2[data-i18n="contact_title"],
    h2[data-i18n="reviews_title"][style*="font-size"],
    h2[data-i18n="award_title"][style*="font-size"],
    h2[data-i18n="news_title"][style*="font-size"],
    h2[data-i18n="corporate_title"][style*="font-size"],
    h2[data-i18n="contact_title"][style*="font-size"],
    h2[data-i18n="service_title"][style*="font-size"] {
        font-size: var(--font-size-h2);
        line-height: 1.4;
        font-weight: 600;
    }
    
    .company-name-large,
    .heading.company-name-large {
        font-size: var(--font-size-h1);
        font-weight: 600;
        margin-bottom: 4.5px;
    }
    
    
    .award-image {
        max-width: 100%;
    }
    
    .heading {
        font-size: 14px !important;
    }
    
    .col-xs-3,
    .col-xs-4 {
        flex: 0 0 50%;
    }
    
    .row-gutter-lg {
        margin: 0 -10px;
    }
    
    .row-gutter-lg > * {
        padding: 0 10px;
    }
    
    .achievement-box {
        padding: 25px 20px !important;
    }
    
    .achievement-box p {
        font-size: var(--font-size-base);
        line-height: 1.7 !important;
    }
    
    /* 実績テキスト（全ての掲載サイトにおいて...）: 10px（スマホ） */
    p[data-i18n="achievement_text"],
    .achievement-box p[data-i18n="achievement_text"] {
        font-size: 10px !important;
    }
    
    /* インラインスタイルのfont-sizeを上書き */
    p[data-i18n="achievement_text"][style*="font-size"],
    .achievement-box p[data-i18n="achievement_text"][style*="font-size"] {
        font-size: 10px !important;
    }
    
    .news-icon {
        width: 67.2px; /* 56px × 1.2 = 67.2px (スマホは1.2倍) */
        height: 67.2px;
        margin-right: 3px;
        margin-left: 0;
    }
    
    /* ニュースページの各記事を左寄せに表示（スマホ） */
    .news-section .list-item {
        justify-content: flex-start !important; /* 左寄せに変更 */
        align-items: center !important;
        padding-left: 0 !important; /* 左側の余白を削除して写真の幅と同じくらい端っこから始める */
        padding-right: 10px !important; /* 右側の余白を追加 */
        margin-left: -15px !important; /* コンテナのパディングを相殺して写真と同じ位置に */
    }
    
    .news-section .list-text {
        text-align: center !important;
    }
    
    /* 商標ロゴを小さく（モバイル） */
    .license-section .trademark-logo {
        max-width: 200px !important;
        height: auto !important;
    }
    
    .license-section .trademark-container {
        flex-direction: column !important;
        gap: 20px !important;
    }
    
    /* 実績画像のスタイル（768px以下） */
    .achievement-images-wrapper {
        flex-direction: column !important;
        gap: 15px !important;
    }
    
    .achievement-image-container {
        flex: 1 1 100% !important;
        max-width: 100% !important;
    }
    
    /* スマホ画面で1枚目の写真を非表示 */
    .achievement-image-container:first-child {
        display: none !important;
    }
    
    .achievement-image {
        height: 270px !important; /* 180px × 1.5 = 270px */
    }
    
    /* 実績テキスト（全ての掲載サイトにおいて...）: 10px（スマホ） */
    p[data-i18n="achievement_text"],
    .achievement-box p[data-i18n="achievement_text"] {
        font-size: 10px !important;
    }
    
    /* インラインスタイルのfont-sizeを上書き */
    p[data-i18n="achievement_text"][style*="font-size"],
    .achievement-box p[data-i18n="achievement_text"][style*="font-size"] {
        font-size: 10px !important;
    }
    
    /* sushimakingjapan.htmlとmatchamakingjapan.htmlの冒頭ロゴを非表示（768px以下） */
    .sushi-section .heading-block-main img,
    .matcha-section .heading-block-main img {
        display: none !important;
    }
}

@media (max-width: 480px) {
    /* 横スクロールの完全防止（小画面） */
    html {
        overflow-x: hidden !important;
        overflow-y: auto !important;
        width: 100% !important;
        max-width: 100vw !important;
        -webkit-overflow-scrolling: touch !important;
        touch-action: pan-y !important;
        position: relative !important;
        height: auto !important;
    }
    
    body {
        overflow-x: hidden !important;
        overflow-y: auto !important;
        width: 100% !important;
        max-width: 100vw !important;
        position: relative !important;
        height: auto !important;
        -webkit-overflow-scrolling: touch !important;
        touch-action: pan-y !important;
    }
    
    body.menu-open {
        overflow: hidden !important;
        position: fixed !important;
        width: 100% !important;
        height: 100vh !important;
        height: 100dvh !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        touch-action: none !important;
    }
    
    html.menu-open {
        overflow: hidden !important;
        height: 100vh !important;
        height: 100dvh !important;
        touch-action: none !important;
    }
    
    /* メニューが閉じている時はスクロール可能（480px以下） */
    body:not(.menu-open) {
        overflow-y: auto !important;
        overflow-x: hidden !important;
        position: relative !important;
        height: auto !important;
        width: 100% !important;
        -webkit-overflow-scrolling: touch !important;
        touch-action: pan-y !important;
    }
    
    html:not(.menu-open) {
        overflow-y: auto !important;
        overflow-x: hidden !important;
        -webkit-overflow-scrolling: touch !important;
        touch-action: pan-y !important;
        position: relative !important;
        height: auto !important;
    }
    
    /* メニューオーバーレイ（小画面、フルスクリーンメニューでは不要） */
    .menu-overlay {
        display: none !important; /* フルスクリーンメニューでは不要 */
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        background: transparent !important; /* フルスクリーンメニューでは透明 */
        z-index: 2147483646 !important;
        opacity: 0;
        transition: opacity var(--transition);
        pointer-events: none !important;
    }
    
    body.menu-open .menu-overlay {
        display: none !important; /* フルスクリーンメニューでは表示しない */
        opacity: 0 !important;
    }
    
    /* すべての要素でスクロール可能にする（480px以下） */
    html, body,
    p, div, span, h1, h2, h3, h4, h5, h6, .text-content, .container, 
    .section, .card, .card-text, .list-text, .heading, .heading-block-main,
    .mission-section, .award-section, .reviews-section, .news-section,
    .corporate-section, .contact-section, li, ul, ol, article, main, aside,
    .inner, .inner-lg, .inner-vertical, .grid-wrapper, .row, .col-xs-12,
    .col-sm-12, .col-md-6, .col-md-12, .btn-wrapper, .form-group, .contact-form {
        touch-action: pan-y !important;
        -webkit-overflow-scrolling: touch !important;
        -webkit-user-select: text !important;
        user-select: text !important;
        -webkit-user-drag: none;
        pointer-events: auto !important;
    }
    
    /* スクロール可能なコンテナ */
    .container, .container-sm, .container-full, .section {
        overflow: visible !important;
        position: relative !important;
        touch-action: pan-y !important;
        -webkit-overflow-scrolling: touch !important;
    }
    
    .header-container {
        padding: 0 10px;
        justify-content: space-between;
        width: 100%;
        max-width: 100vw;
        overflow-x: hidden;
    }
    
    .site-header {
        width: 100%;
        max-width: 100vw;
        overflow-x: hidden;
    }
    
    /* ヘッダーロゴを非表示（小画面） */
    .header-logo {
        display: none !important;
    }
    
    /* 左側のメニューボタン（小画面） */
    .mobile-menu-toggle {
        display: flex !important;
        order: 1;
        padding: 10px;
        min-width: 48px;
        min-height: 48px;
        margin-left: 0;
        margin-right: auto;
        cursor: pointer !important;
        pointer-events: auto !important;
        z-index: 1001 !important;
        position: relative;
        background: var(--white-light);
        border-radius: 16px;
        backdrop-filter: blur(10px);
        box-shadow: var(--shadow);
        transition: all var(--transition);
    }
    
    .mobile-menu-toggle:hover,
    .mobile-menu-toggle:active {
        background: var(--white-medium);
        transform: scale(1.05);
        box-shadow: var(--shadow);
    }
    
    .mobile-menu-toggle span {
        width: 22px;
        height: 3px;
        margin: 4px 0;
        border-radius: 3px;
        background: var(--text-white);
        transition: all var(--transition);
    }
    
    /* 右側の言語切り替え（小画面） */
    /* スマホ版：パソコン版と同じデザイン（トグルスイッチ風） */
    .language-switcher {
        display: flex !important;
        order: 2 !important;
        padding: 4px !important;
        flex-shrink: 0 !important;
        background: rgba(255, 255, 255, 0.95) !important;
        border-radius: 40px !important;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
        position: absolute !important;
        right: 10px !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        height: fit-content !important;
        z-index: 1001 !important;
        gap: 0 !important;
        border: 1px solid rgba(255, 157, 10, 0.2) !important;
        backdrop-filter: blur(10px) !important;
        align-self: center !important;
    }
    
    .lang-btn {
        padding: 10px 18px !important;
        font-size: var(--font-size-base) !important;
        border: none;
        background: transparent !important;
        color: var(--text-secondary);
        cursor: pointer;
        border-radius: 50px !important;
        font-weight: 600;
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
        font-family: var(--font-family);
        touch-action: manipulation;
        position: relative;
        z-index: 1;
        min-width: 70px;
        text-align: center;
    }
    
    .lang-btn:hover {
        background: transparent !important;
        color: var(--brand-primary) !important;
    }
    
    .lang-btn.active {
        background: linear-gradient(135deg, #ff9d0a 0%, #ffbd59 100%) !important;
        color: var(--text-white) !important;
        box-shadow: 0 2px 6px rgba(255, 157, 10, 0.4) !important;
        transform: scale(1.02) !important;
    }
    
    /* フルスクリーンメニュー（小画面、画面全体、iOS Safari対応） */
    .header-nav,
    #header-nav,
    nav.header-nav,
    nav#header-nav {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100% !important;
        max-width: 100vw !important;
        height: 100vh !important;
        height: 100dvh !important;
        z-index: 2147483647 !important;
        transform: translateZ(0) !important; /* iOS Safari対応 */
        -webkit-transform: translateZ(0) !important; /* iOS Safari対応 */
        opacity: 0;
        visibility: hidden;
        filter: none !important;
        backface-visibility: hidden !important; /* iOS Safari対応 */
        -webkit-backface-visibility: hidden !important; /* iOS Safari対応 */
        isolation: isolate !important;
        will-change: auto !important;
        display: none;
        flex-direction: column;
        justify-content: flex-start !important;
        align-items: center;
        background: linear-gradient(135deg, #ffbd59 0%, #ff9d0a 100%) !important;
        padding-top: 80px !important;
    }
    
    .header-nav.active,
    #header-nav.active,
    nav.header-nav.active,
    nav#header-nav.active,
    body.menu-open .header-nav.active,
    body.menu-open #header-nav.active,
    html.menu-open .header-nav.active,
    html.menu-open #header-nav.active {
        display: flex !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        z-index: 2147483647 !important;
        transform: translateZ(0) !important; /* iOS Safari対応 */
        -webkit-transform: translateZ(0) !important; /* iOS Safari対応 */
        filter: none !important;
        backface-visibility: hidden !important; /* iOS Safari対応 */
        -webkit-backface-visibility: hidden !important; /* iOS Safari対応 */
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
    }
    
    .header-nav.active ul {
        pointer-events: auto !important;
        padding: 0 15px 20px 15px !important; /* 下部パディングを追加して最後の項目が見切れないように */
        max-width: 90%;
        gap: 14px !important; /* 10px → 14px (余白を増やす) */
        overflow-y: auto !important; /* スクロールを有効化 */
        overflow-x: hidden !important;
        max-height: calc(100vh - 80px) !important;
        -webkit-overflow-scrolling: touch !important;
    }
    
    .header-nav a {
        padding: 18px 25px; /* 16px → 18px (余白を増やす) */
        font-size: 18px !important; /* 16px → 18px (見やすく) */
        min-height: 60px; /* 56px → 60px */
        pointer-events: auto !important;
        cursor: pointer !important;
        z-index: 999 !important;
        border-radius: 18px !important;
        background: var(--white-25) !important; /* 0.15 → 0.25 (見やすく) */
        backdrop-filter: blur(10px) !important;
        box-shadow: 0 3px 10px var(--black-medium) !important; /* 影を濃く */
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
        margin: 0 !important;
        font-weight: 700 !important; /* 600 → 700 (太く) */
        color: var(--text-white) !important;
        text-shadow: 0 1px 2px var(--black-light); /* 文字に影を追加 */
        display: flex !important;
        align-items: center !important;
        gap: 10px !important;
    }
    
    /* メニューアイコン（寿司ロゴ）のスタイル - 480px以下 */
    .header-nav a img.menu-icon,
    .header-nav a .menu-icon,
    .header-nav > ul > li > a > img.menu-icon {
        object-fit: contain !important;
        border-radius: 50% !important;
        background: var(--white-heavy) !important;
        padding: 3px !important;
        width: 24px !important;
        height: 24px !important;
        min-width: 24px !important;
        min-height: 24px !important;
        flex-shrink: 0 !important;
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        position: relative !important;
        z-index: 1 !important;
    }
    
    .header-nav a:hover,
    .header-nav a:active {
        background: var(--white-medium) !important; /* 0.35 → 0.45 (見やすく) */
        transform: scale(1.03) translateY(-2px) !important;
        box-shadow: var(--shadow) !important; /* 影を濃く */
    }
    
    .dropdown-menu a {
        padding: 10px 14px 10px 36px; /* 小さめのボタンサイズに調整 */
        font-size: 15px !important; /* 小さめのフォントサイズ */
        min-height: 44px; /* 小さめの高さ */
        pointer-events: auto !important;
        cursor: pointer !important;
        z-index: 999 !important;
        border-radius: 12px !important; /* 小さめのボタンに合わせて角丸を小さく */
        background: var(--white-12) !important;
        backdrop-filter: blur(10px) !important;
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
        box-shadow: 0 2px 6px var(--black-medium) !important;
        margin: 0 0 8px 0 !important; /* ボタン間の余白を減らす */
        border: 1px solid var(--white-rgba-20) !important;
        font-weight: 600 !important;
        color: var(--text-white) !important;
        text-shadow: 0 1px 2px var(--black-light);
    }
    
    .dropdown-menu li:last-child a {
        margin-bottom: 0 !important;
    }
    
    .dropdown-menu a::before {
        content: '▶ ' !important;
        position: absolute !important;
        left: 14px !important; /* 小さめのボタンに合わせて位置を調整 */
        color: var(--white-full) !important;
        font-size: 11px !important; /* 小さめのアイコンサイズ */
        font-weight: bold !important;
    }
    
    .dropdown-menu a:hover,
    .dropdown-menu a:active {
        background: var(--white-25) !important;
        transform: scale(1.02) translateX(4px) !important; /* 小さめのボタンに合わせて移動量を減らす */
        box-shadow: 0 3px 12px var(--black-medium) !important;
        border-color: var(--white-35) !important;
    }
    
    /* 480px以下でもフォントサイズ統一（4種類） */
    /* 通常文字: 11.5px（11px + 0.5px） */
    body, p, span, div, li, a, .text-content, .card-text, .list-text, 
    .form-group label, .btn, button {
        font-size: 11.5px !important;
    }
    
    /* フォーム要素は16px以上にしてiOSの自動ズームを防ぐ */
    input, textarea, select, .form-control {
        font-size: 16px !important;
        line-height: 1.6 !important;
    }
    
    /* 「海や山にアクティビティがあるように食にもアクティビティ」の下の文章（mission_3）を2px大きく（480px以下） */
    .mission-section p[data-i18n="mission_3"] {
        font-size: 13px !important; /* 11px + 2px = 13px */
        line-height: 1.6 !important;
    }
    
    /* 「海や山にアクティビティがあるように食にもアクティビティ」の文字*/
    p[data-i18n="mission_1"], 
    .mission-section p[data-i18n="mission_1"],
    .mission-section p:has([data-i18n="mission_1"]),
    p[data-i18n="mission_1"][style*="font-size"] {
        font-size: 13.5px !important;
        font-weight: 600 !important;
        line-height: 1.6 !important;
    }
    
    /* about_textの最初の部分をmission_1と同じスタイルに（480px以下） */
    .about-text-mission-style {
        font-size: 13.5px !important;
        font-weight: 600 !important;
        line-height: 1.6 !important;
        color: var(--text-primary);
    }
    
    /* 実績テキスト（全ての掲載サイトにおいて...）: 10px（480px以下） */
    p[data-i18n="achievement_text"],
    .achievement-box p[data-i18n="achievement_text"] {
        font-size: 10px !important;
    }
    
    /* インラインスタイルのfont-sizeを上書き */
    p[data-i18n="achievement_text"][style*="font-size"],
    .achievement-box p[data-i18n="achievement_text"][style*="font-size"] {
        font-size: 10px !important;
    }
    
    /* 小見出し: 12px */
    .make-eat-heading {
        font-size: 16px !important;
    }
    
    .service-heading, .faq-category-title {
        font-size: 14px !important;
    }
    
    .faq-question, .footer-heading {
        font-size: 12px !important;
    }
    
    /* 見出し: 25px */
    /* フードアクティビティジャパン、サービス、受賞歴、お客様の声、ニュース、会社情報、お問い合わせ */
    .company-name-large,
    .heading.company-name-large,
    .service-section .heading-block-main h2,
    .service-section h2[data-i18n="service_title"],
    .award-section .heading-block-main h2,
    .award-section h2[data-i18n="award_title"],
    .reviews-section h2[data-i18n="reviews_title"],
    .news-section .heading-block-main h2,
    .news-section h2[data-i18n="news_title"],
    .corporate-section .heading-block-main h2,
    .corporate-section h2[data-i18n="corporate_title"],
    .recruit-section .heading-block-main h2,
    .recruit-section h2[data-i18n="recruit_title"],
    .contact-section .heading-block-main h2,
    .contact-section h2[data-i18n="contact_title"],
    h1, h2, .heading, .heading-block-main h2, .heading-section h2,
    .company-name-large {
        font-size: var(--font-size-h1) !important;
    }
    
    /* インラインスタイルのfont-sizeを上書き（480px以下） */
    h2[data-i18n="reviews_title"][style*="font-size"],
    h2[data-i18n="award_title"][style*="font-size"],
    h2[data-i18n="news_title"][style*="font-size"],
    h2[data-i18n="corporate_title"][style*="font-size"],
    h2[data-i18n="contact_title"][style*="font-size"],
    h2[data-i18n="service_title"][style*="font-size"] {
        font-size: 25px !important;
    }
    
    /* フッターのロゴとSNSアイコンを80%に（480px以下） */
    .footer-section:first-child img {
        width: 80px !important;
        height: 80px !important;
        min-width: 80px !important;
        min-height: 80px !important;
        max-width: 80px !important;
        max-height: 80px !important;
        flex-shrink: 0 !important;
    }
    
    .footer-sns-link img {
        width: 40px !important;
        height: 40px !important;
    }
    
    * {
        max-width: 100%;
        box-sizing: border-box;
    }
    
    .section {
        padding: 25px 0;
        width: 100%;
        max-width: 100%;
    }
    
    .container {
        padding: 0 12px;
        max-width: 100%;
        overflow-x: hidden;
        width: 100%;
    }
    
    .sns-section .container {
        padding: 0 8px;
        max-width: 100%;
    }
    
    .hero-section,
    .slider-section {
        width: 100% !important;
        max-width: 100vw !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
        padding: 0 !important;
        margin: 0 !important;
        position: relative !important;
    }
    
    .hero-image-container {
        width: 100% !important;
        max-width: 100vw !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
        margin: 0 !important;
        padding: 0 !important;
        position: relative !important;
    }
    
    .hero-image-container img,
    .img-full {
        width: 100% !important;
        max-width: 100vw !important;
        height: auto !important;
        display: block !important;
        box-sizing: border-box !important;
        object-fit: cover !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    
    .swiper-container {
        height: 300px !important;
        width: 100% !important;
        max-width: 100vw !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
        margin: 0 !important;
        padding: 0 !important;
        position: relative !important;
    }
    
    .swiper-wrapper {
        width: 100% !important;
        max-width: 100vw !important;
        box-sizing: border-box !important;
    }
    
    .swiper-slide {
        width: 100% !important;
        max-width: 100vw !important;
        box-sizing: border-box !important;
        flex-shrink: 0 !important;
    }
    
    .swiper-slide img {
        width: 100% !important;
        max-width: 100vw !important;
        height: auto !important;
        object-fit: cover !important;
        box-sizing: border-box !important;
        display: block !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    
    .photo-gallery-section {
        width: 100% !important;
        max-width: 100% !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
    }
    
    .photo-gallery-grid {
        width: 100% !important;
        max-width: 100% !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
    }
    
    .photo-item {
        width: 100% !important;
        max-width: 100% !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
    }
    
    .photo-item img {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        object-fit: cover !important;
        box-sizing: border-box !important;
    }
    
    /* ボタンのタッチターゲットサイズ確保（小画面） */
    .btn, button, a.btn {
        min-height: 44px;
        min-width: 44px;
        padding: 12px 20px;
        font-size: var(--font-size-base);
        touch-action: manipulation;
        -webkit-tap-highlight-color: transparent;
    }
    
    /* スマホ版のボタンタッチアニメーション */
    .btn:active,
    button:active,
    a.btn:active {
        transform: translateY(-2px) scale(0.97);
        box-shadow: 0 4px 15px rgba(244, 186, 99, 0.4);
        transition: transform 0.1s ease, box-shadow 0.1s ease;
    }
    
    /* タッチ時のリップルエフェクト */
    .btn:active::before {
        width: 200px;
        height: 200px;
        transition: width 0.3s, height 0.3s;
    }
    
    /* カードの改善（小画面） */
    .card {
        padding: 18px 12px;
        margin-bottom: 18px;
        width: 100%;
        max-width: 100%;
    }
    
    /* スマホ版のカードタッチアニメーション */
    .card:active {
        transform: translateY(-3px) scale(0.98);
        box-shadow: 0 6px 20px rgba(244, 186, 99, 0.2);
        transition: transform 0.15s ease, box-shadow 0.15s ease;
    }
    
    .card:active .card-img img,
    .card:active .img-responsive img {
        transform: scale(1.02);
        transition: transform 0.15s ease;
    }
    
    /* 画像の改善（小画面） */
    img {
        max-width: 100%;
        height: auto;
        display: block;
    }
    
    /* スマホ版の画像タッチアニメーション */
    .card-img:active,
    .img-responsive:active {
        transform: translateY(-2px);
        transition: transform 0.15s ease;
    }
    
    .card-img:active img,
    .img-responsive:active img {
        transform: scale(1.03);
        filter: brightness(1) contrast(1.01) saturate(1.02);
        transition: transform 0.15s ease, filter 0.15s ease;
    }
    
    /* フォーム要素の改善（小画面） */
    input, textarea, select {
        font-size: var(--font-size-base); /* iOSのズームを防ぐ */
        min-height: 44px;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }
    
    /* テキストの折り返し改善（小画面） */
    p, span, div, li, a {
        word-wrap: break-word;
        overflow-wrap: break-word;
    }
    
    /* フレックスボックスの改善（小画面） */
    .row, .row-gutter-lg, .row-gutter-none {
        margin-left: 0;
        margin-right: 0;
        width: 100%;
        max-width: 100%;
    }
    
    /* グリッドの改善（小画面） */
    .grid-wrapper, .grid-full {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }
    
    .heading-block-main {
        margin-top: 20px;
        margin-bottom: 25px;
    }
    
    .heading {
        font-size: var(--font-size-base); /* 17px → 16pxに統一 */
        margin-top: var(--spacing-sm);
        margin-bottom: var(--spacing-sm);
        line-height: 1.3;
    }
    
    
    /* インラインスタイルで指定された見出しサイズを上書き（小画面） */
    h2[style*="font-size: 24px"],
    h2[style*="font-size: 36px"] {
        font-size: var(--font-size-base);
    }
    
    h2[style*="font-size: 32px"] {
        font-size: 18px !important;
    }
    
    .text-content {
        font-size: var(--font-size-sm);
        line-height: 1.7;
    }
    
    /* FAQページのテキストサイズを統一 */
    .faq-section .text-content {
        font-size: var(--font-size-sm);
    }
    
    .faq-section p {
        font-size: var(--font-size-sm);
    }
    
    /* その他のページのテキストサイズも統一 */
    .card-text {
        font-size: var(--font-size-sm); /* 15px → 14pxに統一 */
    }
    
    .list-text {
        font-size: var(--font-size-sm); /* 15px → 14pxに統一 */
    }
    
    /* SNSセクションの改善（小画面） */
    .sns-section {
        padding: 25px 0;
    }
    
    .sns-row {
        gap: 5px;
        padding: 0 5px;
        flex-wrap: nowrap;
        justify-content: center;
    }
    
    .sns-row > div {
        padding: 0;
        flex: 0 0 auto;
        min-width: 0;
    }
    
    .sns-icon {
        padding: 8px !important;
        width: auto;
        max-width: none;
    }
    
    .sns-icon img {
        max-width: 50px !important;
        width: 50px !important;
        height: 50px !important;
        margin: 0 !important;
    }
    
    .sns-icon-youtube {
        padding: 8px !important;
    }
    
    .sns-icon-youtube img {
        max-width: 50px !important;
        width: 50px !important;
        height: 50px !important;
    }
    
    /* YouTube動画を他の写真と同じサイズに（480px以下） */
    .video-wrapper {
        width: 100% !important;
        max-width: 100% !important;
        padding-bottom: 56.25% !important; /* 16:9のアスペクト比 */
        margin: 0 auto;
    }
    
    /* プレスリリースコンテンツ（小画面スマホ版） */
    .press-content {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        flex-wrap: nowrap !important;
    }
    
    .press-link-wrapper {
        display: block !important;
        width: 100% !important;
        flex: 0 0 auto !important;
        float: none !important;
        clear: both !important;
    }
    
    .press-link {
        display: block !important;
        width: 100% !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }
    
    .press-text {
        display: block !important;
        width: 100% !important;
        font-size: 10px !important;
        flex: 0 0 auto !important;
        float: none !important;
        clear: both !important;
        margin-top: var(--spacing-sm) !important;
    }
    
    .company-name-large {
        font-size: var(--font-size-h1) !important;
        font-weight: 400 !important;
        margin-bottom: 4.5px !important;
    }
    
    
    .col-xs-3,
    .col-xs-4,
    .col-xs-6 {
        flex: 0 0 100%;
    }
    
    .btn {
        width: 100%;
        padding: 14px 20px;
        font-size: var(--font-size-sm); /* 15px → 14pxに統一 */
        min-height: 48px;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 25px;
    }
    
    /* スマホのsubmitボタンのフォントサイズを1サイズ上げる */
    .btn-submit,
    a.btn-submit,
    button.btn-submit {
        font-size: var(--font-size-base) !important; /* 14px → 16px */
    }
    
    .achievement-box {
        padding: 20px 15px !important;
        margin-top: 20px !important;
    }
    
    .achievement-box p {
        font-size: 15px !important;
        line-height: 1.7 !important;
    }
    
    /* 実績テキスト（全ての掲載サイトにおいて...）: 10px（480px以下） */
    p[data-i18n="achievement_text"],
    .achievement-box p[data-i18n="achievement_text"] {
        font-size: 10px !important;
    }
    
    /* インラインスタイルのfont-sizeを上書き */
    p[data-i18n="achievement_text"][style*="font-size"],
    .achievement-box p[data-i18n="achievement_text"][style*="font-size"] {
        font-size: 10px !important;
    }
    
    .mission-section p[data-i18n="mission_1"] {
        font-size: 14.5px !important;
        font-weight: 600 !important;
        line-height: 1.7 !important;
    }
    .mission-section p[data-i18n="mission_2"] {
        font-size: 22px !important;
        line-height: 1.6 !important;
    }
    
    .news-icon {
        width: 58.8px; /* 49px × 1.2 = 58.8px (スマホは1.2倍) */
        height: 58.8px;
        margin-right: 2px;
        margin-left: 0;
    }
    
    .corporate-logo-grid {
        gap: var(--spacing-xs);
        padding: var(--spacing-sm) 0;
    }
    
    .corporate-logo-item {
        width: 50px;
        height: 50px;
    }
    
    
    /* ニュースページの各記事を左寄せに表示（小画面） */
    .news-section .list-item {
        justify-content: flex-start !important; /* 左寄せに変更 */
        align-items: center !important;
        padding-left: 0 !important; /* 左側の余白を削除して写真の幅と同じくらい端っこから始める */
        padding-right: 8px !important; /* 右側の余白を追加 */
        margin-left: -12px !important; /* コンテナのパディングを相殺して写真と同じ位置に */
    }
    
    .news-section .list-text {
        text-align: center !important;
    }
    
    /* 各サービスのタイトルのフォントサイズを0.7倍に（480px以下） */
    h2[data-i18n="sushi_title"],
    h2[data-i18n="matcha_title"],
    .sushi-section h2[data-i18n="sushi_title"],
    .matcha-section h2[data-i18n="matcha_title"],
    .service-section h2[data-i18n="sushi_title"],
    .service-section h2[data-i18n="matcha_title"] {
        font-size: 14px !important;
    }
    
    /* services.htmlのインラインスタイル（22px）を14pxに（480px以下） */
    .service-section h2[data-i18n="sushi_title"][style*="font-size: 22px"],
    .service-section h2[data-i18n="matcha_title"][style*="font-size: 22px"] {
        font-size: 14px !important;
    }
    
    /* sushimakingjapan.htmlのインラインスタイル（22px）を14pxに（480px以下） */
    .sushi-section h3.service-heading[style*="font-size: 22px"] {
        font-size: 14px !important;
    }
    
    /* 商標ロゴを小さく（小画面） */
    .license-section .trademark-logo {
        max-width: 150px !important;
        height: auto !important;
    }
    
    /* モバイルヘッダー改善（小画面） */
    .header-logo h1 {
        font-size: 12px;
    }
    
    .site-header {
        padding: 10px 0;
        position: sticky;
        top: 0;
        z-index: 1000;
        background: var(--brand-gradient);
        height: auto;
        min-height: 56px;
        display: flex;
        align-items: center;
    }
    
    /* スライダーセクションの上部マージンを調整 */
    .slider-section {
        margin-top: 0;
        padding-top: 0;
    }
    
    .header-container {
        padding: 0 10px;
        gap: 8px;
    }
    
    .site-header {
        padding: 10px 0;
        position: sticky;
        top: 0;
        z-index: 1000;
        background: var(--brand-gradient);
    }
    
    .mobile-menu-toggle {
        padding: 7px;
        min-width: 40px;
        min-height: 40px;
    }
    
    .mobile-menu-toggle span {
        width: 20px;
        height: 2px;
        margin: 3px 0;
    }
    
    /* スマホ版：パソコン版と同じデザイン（トグルスイッチ風） */
    .language-switcher {
        display: flex !important;
        order: 2;
        padding: 4px !important;
        flex-shrink: 0;
        background: rgba(255, 255, 255, 0.95) !important;
        border-radius: 40px !important;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
        position: absolute !important;
        right: 10px !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        height: fit-content !important;
        z-index: 1001;
        gap: 0 !important;
        border: 1px solid rgba(255, 157, 10, 0.2) !important;
        backdrop-filter: blur(10px) !important;
    }
    
    .lang-btn {
        padding: 10px 18px !important;
        font-size: var(--font-size-base) !important;
        border: none;
        background: transparent !important;
        color: var(--text-secondary);
        cursor: pointer;
        border-radius: 50px !important;
        font-weight: 600;
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
        font-family: var(--font-family);
        touch-action: manipulation;
        position: relative;
        z-index: 1;
        min-width: 70px;
        text-align: center;
    }
    
    .lang-btn:hover {
        background: transparent !important;
        color: var(--brand-primary) !important;
    }
    
    .lang-btn.active {
        background: linear-gradient(135deg, #ff9d0a 0%, #ffbd59 100%) !important;
        color: var(--text-white) !important;
        box-shadow: 0 2px 6px rgba(255, 157, 10, 0.4) !important;
        transform: scale(1.02) !important;
    }
    
    .header-nav {
        top: 0;
        max-height: none;
        margin-top: 6px;
        border-radius: 10px;
    }
    
    .header-nav a {
        padding: 14px 20px !important; /* 大きく */
        font-size: 16px !important; /* 大きく */
        min-height: 50px !important; /* 大きく */
    }
    
    /* 寿司ロゴを削除（480px以下） */
    .header-nav a::before {
        display: none !important; /* 寿司ロゴを削除 */
    }
    
    .header-nav > ul > li.dropdown .dropdown-menu a::before {
        display: none !important; /* 寿司ロゴを削除 */
    }
    
    /* ドロップダウンメニューをサービスコンテナスタイルに変換（480px以下） */
    .header-nav > ul > li.dropdown .dropdown-menu {
        margin: 0 !important;
        padding: 8px !important; /* 16px → 8px (小さく) */
        background: var(--white-light) !important;
        backdrop-filter: blur(10px) !important;
        border-radius: 10px !important; /* 18px → 10px (小さく) */
        border: 2px solid var(--white-medium) !important;
        box-shadow: var(--shadow) !important;
        display: block !important;
        width: 100% !important;
    }
    
    .header-nav > ul > li.dropdown .dropdown-menu::before {
        content: 'サービス';
        display: block;
        font-size: 14px !important; /* 18px → 14px (小さく) */
        font-weight: 600 !important; /* 700 → 600 (細く) */
        color: var(--text-white);
        text-align: left !important; /* center → left (左寄せ) */
        margin-bottom: 4px !important; /* 12px → 4px (小さく) */
        text-shadow: 0 1px 2px var(--black-light);
        padding-left: 0; /* 左寄せのため */
    }
    
    /* 英語の場合（480px以下） */
    html[data-lang="en"] .header-nav > ul > li.dropdown .dropdown-menu::before,
    body[data-lang="en"] .header-nav > ul > li.dropdown .dropdown-menu::before {
        content: 'Services';
    }
    
    .header-nav > ul > li.dropdown .dropdown-menu a {
        padding: 8px 14px !important; /* 18px 25px → 8px 14px (小さく) */
        font-size: 13px !important; /* 18px → 13px (小さく) */
        font-weight: 600 !important; /* 700 → 600 (細く) */
        color: var(--text-white) !important;
        background: var(--white-rgba-20) !important;
        border: none !important;
        border-radius: 10px !important; /* 20px → 10px (小さく) */
        text-decoration: none !important;
        text-align: left !important; /* center → left (左寄せ) */
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
        box-shadow: var(--shadow) !important;
        text-shadow: 0 1px 2px var(--black-light) !important;
        min-height: 38px !important; /* 60px → 38px (小さく) */
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important; /* center → flex-start (左寄せ) */
        margin: 0 0 4px 0 !important; /* 14px → 4px (間隔を小さく) */
        position: relative !important;
        width: 100% !important;
        gap: 0 !important; /* 寿司ロゴを削除 */
    }
    
    .header-nav > ul > li.dropdown .dropdown-menu a::before {
        display: none !important; /* 寿司ロゴを削除 */
    }
    
    .header-nav > ul > li.dropdown .dropdown-menu a:hover,
    .header-nav > ul > li.dropdown .dropdown-menu a:active {
        background: var(--white-medium) !important;
        transform: scale(1.03) translateY(-2px) !important;
        box-shadow: var(--shadow) !important;
    }
    
    /* カードとボタンのタッチターゲット改善 */
    .card {
        padding: 20px 15px;
    }
    
    .card-text {
        font-size: var(--font-size-sm); /* 15px → 14pxに統一 */
        line-height: 1.8;
    }
    
    /* フォーム要素の改善（iOSのズームを防ぐ） */
    input[type="text"],
    input[type="email"],
    input[type="tel"],
    textarea,
    select,
    .form-control {
        font-size: 16px !important; /* iOSの自動ズームを防ぐため16px以上必須 */
        padding: 14px 16px !important;
        min-height: 50px;
    }
    
    /* リンクのタッチターゲット改善 */
    a:not(.header-nav a):not(.dropdown-menu a) {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
    }
    
    /* テキストの読みやすさ向上 */
    .text-content {
        line-height: 1.7;
    }
    
    .heading {
        line-height: 1.4;
    }
    
    .heading-block-main h2 {
        line-height: 1.3;
    }
    
    /* カードの改善 */
    .card {
        padding: 18px 12px;
        margin-bottom: 20px;
    }
    
    /* ギャラリーの改善 */
    .gallery-section {
        padding: 20px 0;
    }
    
    .gallery-section img {
        height: 180px;
    }
    
    /* フォームの改善 */
    .form-group {
        margin-bottom: 20px;
    }
    
    .form-label {
        font-size: var(--font-size-sm); /* 15px → 14pxに統一 */
        margin-bottom: 6px;
    }
    
    /* チェックボックスのスタイルを他のフォーム項目と統一 */
    .checkbox-inline {
        display: flex;
        align-items: center;
        margin-right: 0;
        margin-top: 12px;
        margin-bottom: 0;
        width: calc(50% - 8px);
        min-width: calc(50% - 8px);
    }
    
    .checkbox-inline input[type="checkbox"] {
        width: 20px;
        height: 20px;
        margin-right: 10px;
        margin-left: 0;
        cursor: pointer;
        border: 2px solid var(--border);
        border-radius: var(--radius-sm);
        appearance: none;
        -webkit-appearance: none;
        -moz-appearance: none;
        position: relative;
        flex-shrink: 0;
        transition: all var(--transition);
    }
    
    /* スマホ版：チェックボックスを20px × 20pxの正方形に */
    @media (max-width: 480px) {
        .checkbox-inline input[type="checkbox"] {
            width: 20px;
            height: 20px;
            min-width: 20px;
            min-height: 20px;
            max-width: 20px;
            max-height: 20px;
            margin-right: 10px;
            border-width: 2px;
        }
        
        .checkbox-inline input[type="checkbox"]:checked::after {
            font-size: 14px;
        }
    }
    
    .checkbox-inline input[type="checkbox"]:checked {
        background-color: var(--brand-primary);
        border-color: var(--brand-primary);
    }
    
    .checkbox-inline input[type="checkbox"]:checked::after {
        content: "✓";
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        color: var(--text-white);
        font-size: 14px;
        font-weight: bold;
    }
    
    .checkbox-inline input[type="checkbox"]:focus {
        outline: none;
        border-color: var(--brand-primary);
        box-shadow: 0 0 0 3px var(--brand-rgba);
    }
    
    .checkbox-inline span {
        font-size: var(--font-size-base);
        color: var(--text-primary);
        line-height: 1.5;
    }
    
    .form-inputs {
        display: flex;
        flex-wrap: wrap;
        gap: 16px;
    }
    
    /* フッターの改善（モバイル簡略化） */
    .footer {
        padding: 30px 0 20px;
    }
    
    .footer-content {
        display: flex;
        flex-direction: column;
        gap: 20px;
        margin-bottom: 25px;
    }
    
    /* モバイルでは最初のセクション（会社情報）とSNSのみ表示 */
    .footer-section:nth-child(2),
    .footer-section:nth-child(3) {
        display: none;
    }
    
    .footer-section:first-child {
        margin-right: 0;
        text-align: center;
    }
    
    .footer-section:last-child {
        text-align: center;
    }
    
    .footer-heading {
        font-size: 12px !important;
        margin-bottom: 12px;
        border-bottom: 2px solid var(--white-medium);
        padding-bottom: 8px;
    }
    
    .footer-text {
        font-size: 10px !important;
        margin-bottom: var(--spacing-sm);
    }
    
    .footer-text p {
        margin-bottom: 10px;
        font-size: 10px !important;
    }
    
    /* ロゴを80%に縮小 */
    .footer-section:first-child img {
        width: 80px !important;
        height: 80px !important;
        min-width: 80px !important;
        min-height: 80px !important;
        max-width: 80px !important;
        max-height: 80px !important;
        flex-shrink: 0 !important;
    }
    
    .footer-links {
        display: none;
    }
    
    .footer-sns {
        justify-content: center;
        gap: 15px;
    }
    
    /* SNSアイコンを80%に縮小 */
    .footer-sns-link img {
        width: 40px !important;
        height: 40px !important;
    }
    
    .footer-copyright {
        margin-top: 20px;
        padding-top: 20px;
        border-top: 1px solid var(--white-medium);
    }
    
    .footer-copyright p {
        font-size: 12px;
    }
}

/* チャットボット基本スタイル */
#chatbot-container {
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 9999;
    font-family: var(--font-family);
    pointer-events: auto !important;
}

#chatbot-toggle {
    pointer-events: auto !important;
    touch-action: manipulation !important;
    -webkit-tap-highlight-color: var(--brand-rgba);
}

#chatbot-close {
    pointer-events: auto !important;
    touch-action: manipulation !important;
    -webkit-tap-highlight-color: var(--white-medium);
}

#chatbot-toggle {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: linear-gradient(135deg, #ffbd59 0%, #ff9d0a 100%);
    border: none;
    box-shadow: 0 4px 15px var(--black-heavy);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

#chatbot-toggle svg {
    width: 40px;
    height: 40px;
}

#chatbot-toggle:hover {
    transform: scale(1.05);
}

#chatbot-toggle:active {
    transform: scale(0.95);
}

#chatbot-window {
    display: none;
    width: 350px;
    height: 500px;
    max-height: calc(100vh - 120px);
    background: var(--bg);
    border-radius: 12px;
    box-shadow: 0 8px 30px var(--black-medium);
    position: absolute;
    bottom: 90px;
    right: 0;
    flex-direction: column;
    overflow: hidden;
}

#chatbot-window.show {
    display: flex;
}

/* チャットボットタイトル（デスクトップ：大きく） */
#chatbot-title {
    font-size: 18px !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: white !important;
}

#chatbot-subtitle {
    color: white !important;
}

#chatbot-messages {
    flex: 1;
    overflow-y: auto;
    padding: 20px;
    background: var(--bg);
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.chatbot-message {
    max-width: 75%;
    min-width: 100px;
    word-wrap: break-word;
    overflow-wrap: break-word;
    padding: 12px 16px;
    border-radius: 12px;
    font-size: var(--font-size-sm);
    line-height: 1.6;
}

.chatbot-message.chatbot-bot {
    background: var(--bg);
    box-shadow: 0 2px 5px var(--black-light);
    align-self: flex-start;
}

.chatbot-message.chatbot-user {
    background: linear-gradient(135deg, #ffbd59 0%, #ff9d0a 100%);
    color: var(--text-white);
    align-self: flex-end;
    margin-left: auto;
}

.chatbot-message p {
    margin: 0;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

#chatbot-input {
    flex: 1;
    padding: 10px 15px;
    border: 1px solid var(--border);
    border-radius: 20px;
    font-size: var(--font-size-sm);
    outline: none;
    min-height: 44px;
    font-family: inherit;
}

#chatbot-form {
    display: flex;
    gap: 10px;
    padding: var(--spacing-sm);
    background: var(--bg);
    border-top: 1px solid #e0e0e0;
}

#chatbot-form button[type="submit"] {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: linear-gradient(135deg, #ffbd59 0%, #ff9d0a 100%);
    border: none;
    color: white;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s ease;
    min-width: 44px;
    min-height: 44px;
}

#chatbot-form button[type="submit"]:hover {
    transform: scale(1.1);
}

#chatbot-form button[type="submit"]:active {
    transform: scale(0.95);
}

/* モバイル対応 */
@media (max-width: 768px) {
    #chatbot-container {
        bottom: 20px;
        right: 20px;
        position: fixed;
    }
    
    /* チャットボット吹き出しを非表示 */
    #chatbot-container::before {
        display: none !important;
    }
    
    /* 吹き出しの矢印を非表示 */
    #chatbot-container::after {
        display: none !important;
    }
    
    /* ホバー時、タッチ時、または表示時 */
    #chatbot-container:hover::before,
    #chatbot-container:active::before,
    #chatbot-container.show-bubble::before {
        opacity: 1;
        transform: translateY(0);
    }
    
    #chatbot-container:hover::after,
    #chatbot-container:active::after,
    #chatbot-container.show-bubble::after {
        opacity: 1;
        transform: translateY(0);
    }
    
    /* タッチデバイスでの表示 */
    @media (hover: none) and (pointer: coarse) {
        #chatbot-container.show-bubble::before,
        #chatbot-container.show-bubble::after {
            opacity: 1;
            transform: translateY(0);
        }
    }
    
    #chatbot-toggle {
        width: 72px; /* 90px × 0.8 = 72px */
        height: 72px; /* 90px × 0.8 = 72px */
        position: relative;
        z-index: 10001;
    }
    
    #chatbot-toggle svg {
        width: 32px; /* 40px × 0.8 = 32px */
        height: 32px; /* 40px × 0.8 = 32px */
    }
    
    #chatbot-window {
        width: calc(100vw - 40px);
        max-width: 350px;
        height: 500px;
        max-height: calc(100vh - 120px);
        bottom: 100px;
    }
    
    #chatbot-messages {
        padding: var(--spacing-sm);
        max-height: calc(100vh - 250px);
    }
    
    .chatbot-message {
        font-size: 14.5px;
        padding: 12px 16px;
    }
    
    #chatbot-input {
        font-size: 16.5px;
        padding: 14px 16px;
        min-height: 50px;
    }
    
    /* お問い合わせフォームリンクを見やすく */
    #chatbot-contact-link {
        font-size: 15px !important;
        font-weight: 600 !important;
        color: var(--brand-secondary) !important;
    }
    
    /* ×ボタンを2倍に（モバイル） */
    #chatbot-close {
        font-size: 48px !important;
        width: 60px !important;
        height: 60px !important;
        min-width: 60px !important;
        min-height: 60px !important;
    }
    
    #chatbot-form button[type="submit"] {
        width: 50px;
        height: 50px;
        min-width: 50px;
        min-height: 50px;
    }
    
    /* チャットボットタイトル（スマホ：小さく、1行表示） */
    #chatbot-title {
        font-size: 16px !important; /* 大きく */
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        max-width: 100% !important;
        color: white !important;
    }
    
    #chatbot-subtitle {
        color: white !important;
    }
    
    /* お問い合わせの送信ボタンのフォントサイズを2つ大きく（768px以下） */
}

@media (max-width: 480px) {
    #chatbot-container {
        bottom: 15px;
        right: 15px;
        position: fixed;
    }
    
    /* チャットボット吹き出しを非表示（小画面） */
    #chatbot-container::before {
        display: none !important;
    }
    
    #chatbot-container::after {
        display: none !important;
    }
    
    /* ×ボタンを2倍に（小画面） */
    #chatbot-close {
        font-size: 48px !important;
        width: 60px !important;
        height: 60px !important;
        min-width: 60px !important;
        min-height: 60px !important;
    }
    
    /* お問い合わせフォームリンクを見やすく（小画面） */
    #chatbot-contact-link {
        font-size: 15px !important;
        font-weight: 600 !important;
        color: var(--brand-secondary) !important;
    }
    
    .chatbot-message {
        font-size: 14.5px !important;
    }
    
    #chatbot-input {
        font-size: 16.5px !important;
    }
    
    #chatbot-toggle {
        width: 64px; /* 80px × 0.8 = 64px */
        height: 64px; /* 80px × 0.8 = 64px */
        position: relative;
        z-index: 10001;
    }
    
    #chatbot-toggle svg {
        width: 28.8px; /* 36px × 0.8 = 28.8px */
        height: 28.8px; /* 36px × 0.8 = 28.8px */
    }
    
    #chatbot-window {
        width: calc(100vw - 30px);
        max-width: 320px;
        height: 450px;
        max-height: calc(100vh - 100px);
        bottom: 90px;
    }
    
    #chatbot-messages {
        padding: 12px;
        max-height: calc(100vh - 220px);
    }
    
    .chatbot-message {
        font-size: 14.5px !important;
        padding: 10px 14px;
    }
    
    #chatbot-input {
        font-size: 16.5px !important;
        padding: 12px 14px;
        min-height: 48px;
    }
    
    #chatbot-form button[type="submit"] {
        width: 48px;
        height: 48px;
        min-width: 48px;
        min-height: 48px;
    }
    
    /* チャットボットタイトル（小画面：小さく、1行表示） */
    #chatbot-title {
        font-size: 15px !important; /* 大きく */
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        max-width: 100% !important;
        color: white !important;
    }
    
    #chatbot-subtitle {
        color: white !important;
    }
    
    /* お問い合わせの送信ボタンのフォントサイズを2つ大きく（480px以下） */
}

/* モバイル用の追加改善 */
@media (max-width: 768px) {
    /* フッターの改善 */
    .footer-content {
        text-align: center;
    }
    
    .footer-section {
        margin-bottom: 25px;
    }
    
    /* 画像のレスポンシブ */
    img {
        max-width: 100%;
        height: auto;
    }
    
    /* テーブルの改善 */
    table {
        font-size: var(--font-size-sm);
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    
    /* スクロールの改善 */
    html {
        -webkit-overflow-scrolling: touch;
    }
    
    body {
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        overflow-x: hidden;
        width: 100%;
        max-width: 100vw;
    }
    
    /* すべての要素が画面からはみ出さないように */
    * {
        max-width: 100%;
        box-sizing: border-box;
    }
    
    /* コンテナの最大幅調整 */
    .container-sm {
        padding: 0 15px;
        max-width: 100%;
        overflow-x: hidden;
    }
    
    /* リストの改善 */
    .list-item {
        padding: 12px 0;
    }
    
    .list-text {
        font-size: var(--font-size-sm);
        line-height: 1.6;
    }
    
    /* ボタンのタッチターゲットサイズ確保 */
    .btn, button, a.btn {
        min-height: 44px;
        min-width: 44px;
        padding: 12px 24px;
        font-size: var(--font-size-base);
        touch-action: manipulation;
    }
    
    /* カードの改善 */
    .card {
        padding: 20px 15px;
        margin-bottom: 20px;
        width: 100%;
        max-width: 100%;
    }
    
    /* 画像の改善 */
    img {
        max-width: 100%;
        height: auto;
        display: block;
    }
    
    /* フォーム要素の改善 */
    input, textarea, select {
        font-size: var(--font-size-base); /* iOSのズームを防ぐ */
        min-height: 44px;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }
    
    /* テキストの折り返し改善 */
    p, span, div, li {
        word-wrap: break-word;
        overflow-wrap: break-word;
    }
    
    /* 横スクロールの完全防止 */
    html, body {
        overflow-x: hidden;
        width: 100%;
        position: relative;
    }
    
    /* フレックスボックスの改善 */
    .row, .row-gutter-lg, .row-gutter-none {
        margin-left: 0;
        margin-right: 0;
        width: 100%;
        max-width: 100%;
    }
    
    /* グリッドの改善 */
    .grid-wrapper, .grid-full {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }
    
    /* ボタンラッパーの改善 */
    .btn-wrapper {
        margin-top: var(--spacing-sm);
    }
    
    /* 見出しセクションの改善 */
    .heading-section {
        margin-top: 0;
        padding: 20px 0;
    }
    
    /* ミッションセクションの改善 */
    .mission-section {
        padding-top: 15px !important;
    }
    
    /* インラインスタイルで指定された見出しサイズを上書き */
    h2[style*="font-size: 24px"],
    h2[style*="font-size: 36px"] {
        font-size: 18px !important;
    }
    
    h2[style*="font-size: 32px"] {
        font-size: 20px !important;
    }
    
    /* スマホで非表示にするセクション（メニューから確認可能） */
    .gallery-section,
    /* .press-section, */ /* Removed - スマホでも表示 */
    .license-section {
        display: none !important;
    }
    
    /* SNSセクションとYouTubeセクションはスマホでも表示 */
    .sns-section,
    .video-section {
        display: block !important;
    }
    
    /* プレスリリースセクションもスマホで表示 */
    .press-section {
        display: block !important;
    }
    
    /* about-sectionはスマホでも表示 */
    .about-section {
        display: block !important;
        padding: 30px 0 4px 0 !important; /* .sectionのpaddingを上書き */
    }
    
    /* about-sectionのテキストコンテンツの下の余白を減らす */
    .about-section .text-content {
        margin-bottom: 4px !important;
    }
    
    /* create-eat-sectionはスマホでも表示 */
    .create-eat-section {
        display: block !important;
        padding: 4px 0 25px 0 !important; /* .sectionのpaddingを上書き */
    }
    
    /* create-eat-sectionのレイアウト（480px以下） */
    .create-eat-section .row {
        flex-direction: column !important;
        gap: 25px !important;
    }
    
    .create-eat-section .col-xs-12,
    .create-eat-section .col-sm-6 {
        flex: 0 0 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-bottom: 25px !important;
    }
    
    .create-eat-section .card-img {
        width: 100% !important;
        margin-bottom: 15px !important;
    }
    
    .create-eat-section .card-img img {
        width: 100% !important;
        height: auto !important;
        object-fit: cover !important;
        min-height: 200px !important;
    }
    
    .create-eat-section .heading {
        font-size: 18px !important;
        margin-top: 10px !important;
        margin-bottom: 10px !important;
    }
    
    
    .create-eat-section .card-text {
        font-size: 14px !important;
        line-height: 1.7 !important;
        margin-bottom: 15px !important;
    }
    
    /* サービスセクション（sushi-section、matcha-section、service-detail-section）を非表示（480px以下、スマホでは「サービスを見る」ボタンに集約） */
    /* index.htmlのみ非表示、sushimakingjapan.htmlとmatchamakingjapan.htmlでは表示 */
    body:not([data-page="sushi"]):not([data-page="matcha"]) .sushi-section,
    body:not([data-page="sushi"]):not([data-page="matcha"]) .matcha-section,
    #service-detail-section {
        display: none !important;
    }
    
    /* sushimakingjapan.htmlとmatchamakingjapan.htmlでは表示 */
    body[data-page="sushi"] .sushi-section,
    body[data-page="matcha"] .matcha-section {
        display: block !important;
    }
    
    /* サービスセクション内のカードを表示（480px以下） */
    .sushi-section .card,
    .sushi-section .card-img,
    .sushi-section .card-text,
    .sushi-section .heading,
    .sushi-section .btn-wrapper,
    .sushi-section .btn,
    .matcha-section .card,
    .matcha-section .card-img,
    .matcha-section .card-text,
    .matcha-section .heading,
    .matcha-section .btn-wrapper,
    .matcha-section .btn,
    .sushi-section .col-xs-12,
    .sushi-section .col-sm-12,
    .sushi-section .col-md-6,
    .matcha-section .col-xs-12,
    .matcha-section .col-sm-12,
    .matcha-section .col-md-6,
    .sushi-section .row,
    .matcha-section .row,
    .sushi-section .grid-wrapper,
    .matcha-section .grid-wrapper {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }
    
    /* サービスセクション内のカードレイアウト（480px以下） */
    .sushi-section .row,
    .matcha-section .row {
        flex-direction: column !important;
        gap: 30px !important;
    }
    
    .sushi-section .col-xs-12,
    .sushi-section .col-sm-12,
    .sushi-section .col-md-6,
    .matcha-section .col-xs-12,
    .matcha-section .col-sm-12,
    .matcha-section .col-md-6 {
        flex: 0 0 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-bottom: 30px !important;
    }
    
    .sushi-section .card,
    .matcha-section .card {
        width: 100% !important;
        max-width: 600px !important; /* フォトギャラリーと同じ最大幅 */
        margin: 0 auto 40px !important; /* 30px → 40px (セクション間を明確に) */
        padding: 30px 20px !important;
        border: 1px solid var(--border) !important;
        border-radius: 12px !important;
        box-shadow: var(--shadow) !important;
    }
    
    .sushi-section .card-img,
    .matcha-section .card-img {
        width: 100%;
        max-width: 600px;
        height: 250px;
        margin: 0 auto 20px;
    }
    
    .sushi-section .card-img img,
    .sushi-section .img-responsive img,
    .matcha-section .card-img img,
    .matcha-section .img-responsive img {
        width: 100%;
        max-width: 100%;
        height: 250px;
        object-fit: cover;
    }
        
    .sushi-section .card-text,
    .matcha-section .card-text {
        font-size: 11.5px !important; /* 11px + 0.5px */
        line-height: 1.5 !important; /* 1.6 → 1.5 (行間を詰める) */
        margin-bottom: 20px !important;
    }
    
    .sushi-section .btn,
    .matcha-section .btn {
        font-size: 12px;
        padding: 12px 30px;
        min-height: 44px;
        width: auto;
        display: inline-block;
    }
    
    /* ミッションセクションは全て表示（スマホでも） */
    .mission-section .achievement-box {
        display: block !important;
    }
    
    .mission-section p[data-i18n="mission_3"] {
        display: block !important;
        font-size: 13px !important; /* 11px + 2px = 13px */
        line-height: 1.6 !important;
    }
    
    /* サービスセクションは表示（カードコンテンツも含む） */
    .service-section {
        display: block !important;
        padding: 30px 0 !important;
    }
    
    /* サービスセクション内のカードを表示（480px以下） */
    .service-section .card,
    .service-section .card-img,
    .service-section .card-text,
    .service-section .heading,
    .service-section .btn-wrapper,
    .service-section .btn,
    .service-section .col-xs-12,
    .service-section .col-sm-12,
    .service-section .col-md-6,
    .service-section .row,
    .service-section .grid-wrapper {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }
    
    /* サービスセクション内のカードレイアウト（480px以下） */
    .service-section .row {
        flex-direction: column !important;
        gap: 30px !important;
    }
    
    .service-section .col-xs-12,
    .service-section .col-sm-12,
    .service-section .col-md-6 {
        flex: 0 0 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-bottom: 30px !important;
    }
    
    .service-section .card {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto 30px !important;
        padding: 30px 20px !important;
    }
    
    .service-section .card-img,
    .service-section .img-responsive {
        width: 100%;
        max-width: 100%;
        height: 200px;
        margin-bottom: 7px;
    }
    
    .service-section .card-img img,
    .service-section .img-responsive img {
        width: 100%;
        max-width: 100%;
        height: 200px;
        object-fit: cover;
    }
    
    /* サービスセクション内の見出しは、統一されたh2スタイルを使用 */
    
    /* サービスセクション内のカードテキストとボタンは、統一されたスタイルを使用 */
    
    /* TripAdvisor写真を元のサイズに（480px以下） */
    .award-image-large,
    .award-image-large img {
        max-width: 100%;
        width: 100%;
    }
    
    /* 受賞歴セクションは表示 */
    .award-section {
        display: block !important;
        padding: 30px 0 !important;
    }
    
    /* レビューセクションは表示 */
    .reviews-section {
        display: block !important;
        padding: 30px 0 !important;
    }
    
    /* ニュースセクションは表示 */
    .news-section {
        display: block !important;
        padding: 30px 0 !important;
    }
    
    /* 会社情報セクションは表示 */
    .corporate-section {
        display: block !important;
        padding: 30px 0 !important;
    }
    
    /* 会社情報セクションの各項目（社名、代表取締役、所在地、資本金、設立年月日）のフォントサイズを大きく（480px以下） */
    .corporate-section [data-i18n="corporate_text"] {
        padding: 25px 15px !important; /* モバイルではパディングを調整 */
    }
    
    [data-i18n="corporate_text"] span {
        font-size: var(--font-size-base); /* 17px → 16px (少し小さく) */
        line-height: 1.8;
        padding: 10px 0 !important; /* モバイルではパディングを調整 */
    }
    
    /* 会社情報セクション内のすべての文字（480px以下） */
    .corporate-section [data-i18n="corporate_text"],
    .corporate-section [data-i18n="corporate_text"] * {
        font-size: var(--font-size-base); /* 17px → 16px (少し小さく) */
    }
    
    /* お問い合わせセクションは表示 */
    .contact-section {
        display: block !important;
        padding: 40px 0 !important;
    }
    
    /* スライダーセクションの高さを調整 */
    .slider-section {
        padding: 0 !important;
    }
    
    /* ヒーロー画像セクション（スマホ） */
    .hero-section {
        padding: 0 !important;
        margin-top: 0 !important;
    }
    
    .hero-image-container {
        width: 100%;
        max-width: 100%;
        overflow: hidden;
    }
    
    .hero-image-container img {
        width: 100%;
        height: auto;
        display: block;
        object-fit: cover;
        min-height: 300px; /* スマホで大きく表示 */
    }
    
    /* ヒーローセクションのフォトギャラリー（スマホ） */
    .hero-photo-gallery {
        grid-template-columns: 1fr !important;
        gap: 0 !important;
    }
    
    .hero-photo-item {
        display: none !important; /* すべて非表示にしてから、最後から2番目だけ表示 */
    }
    
    .hero-photo-item:nth-last-child(2) {
        display: block !important; /* 最後から2番目（Sushi Making Japan7.jpg）を表示 */
    }
    
    .hero-photo-item img {
        width: 100% !important;
        height: auto !important;
        aspect-ratio: auto !important;
        min-height: 300px !important;
    }
    
    /* スマホ画面のデザイン統一性改善（480px以下） */
    .section {
        padding: 40px 0 !important; /* 統一されたパディング */
    }
    
    .heading-block-main {
        margin-bottom: 30px !important; /* 統一されたマージン */
    }
    
    .heading-block-main h2 {
        font-size: 28px !important; /* 統一されたフォントサイズ */
        font-weight: 600 !important;
        line-height: 1.4 !important;
        margin-bottom: 20px !important;
    }
    
    .container {
        padding-left: 20px !important; /* 統一されたパディング */
        padding-right: 20px !important;
    }
    
    .card {
        padding: 25px 20px;
        margin-bottom: 25px;
    }
    
    .card-text {
        font-size: var(--font-size-sm); /* 15px → 14pxに統一 */
        line-height: 1.7;
        margin-bottom: 20px;
    }
    
    .btn {
        font-size: var(--font-size-base);
        padding: 14px 28px;
        min-height: 48px;
    }
    
    /* 見出しセクションの余白を調整 */
    .heading-section {
        padding: 30px 0;
    }
    
    /* ミッションセクションの余白を調整 */
    .mission-section {
        padding: 40px 0;
    }
    
    /* Thank You ページのスタイル */
    .thank-you-section {
        padding: 120px 0;
        background: #ffffff;
    }
    
    .thank-you-container {
        max-width: 800px;
        margin: 0 auto;
    }
    
    .thank-you-icon-wrapper {
        margin-bottom: 40px;
    }
    
    .thank-you-icon {
        margin: 0 auto;
        color: #ffbd59;
        display: block;
    }
    
    .thank-you-heading {
        font-size: 33px; /* 36px - 3px */
        margin-bottom: 30px;
        color: #333333;
    }
    
    .thank-you-content {
        font-size: 18px;
        line-height: 2;
        color: #666666;
        margin-bottom: 40px;
    }
    
    .thank-you-button-wrapper {
        margin-top: 50px;
    }
    
    .thank-you-button {
        /* 他のページの.btnスタイルと同じにする */
        padding: var(--spacing-sm) 40px;
        background-color: var(--brand-primary);
        color: var(--text-white);
        border: none;
        border-radius: var(--radius-lg);
        font-size: var(--font-size-lg);
        font-weight: 600;
        box-shadow: var(--shadow);
        text-decoration: none;
        display: inline-block;
        transform: translateY(0);
    }
    
    .thank-you-button:hover {
        background-color: var(--brand-secondary);
        transform: translateY(-2px);
        box-shadow: var(--shadow);
    }
    
    .thank-you-button:active {
        transform: translateY(0);
        box-shadow: var(--shadow);
    }
    
    .footer-text p {
        margin-bottom: 20px;
    }
    
    .footer-logo-wrapper {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 15px;
        margin-top: 25px;
    }
    
    @media (max-width: 768px) {
        .thank-you-section {
            padding: 80px 0;
        }
        
        .thank-you-heading {
            font-size: 25px; /* 28px - 3px */
            margin-bottom: 20px;
        }
        
        .thank-you-content {
            font-size: 16px;
            line-height: 1.8;
            margin-bottom: 30px;
        }
        
        .thank-you-button-wrapper {
            margin-top: 40px;
        }
        
        .thank-you-button {
            /* モバイルでも.btnスタイルを維持 */
            padding: var(--spacing-sm) 40px;
            font-size: var(--font-size-lg);
        }
    }
    
    @media (max-width: 480px) {
        .thank-you-section {
            padding: 60px 0;
        }
        
        .thank-you-heading {
            font-size: 21px; /* 24px - 3px */
        }
        
        .thank-you-content {
            font-size: 15px;
        }
        
        .thank-you-button {
            /* モバイルでも.btnスタイルを維持 */
            padding: var(--spacing-sm) 40px;
            font-size: var(--font-size-lg);
        }
    }
    
    /* 実績画像のスタイル（スマホ） */
    .achievement-images-wrapper {
        flex-direction: column;
        gap: 15px;
    }
    
    .achievement-image-container {
        flex: 1 1 100% !important;
        max-width: 100% !important;
    }
    
    /* スマホ画面で1枚目の写真を非表示 */
    .achievement-image-container:first-child {
        display: none !important;
    }
    
    .achievement-image {
        height: 225px !important; /* 150px × 1.5 = 225px */
    }
    
    /* 実績テキスト（全ての掲載サイトにおいて...）: 10px（480px以下） */
    p[data-i18n="achievement_text"],
    .achievement-box p[data-i18n="achievement_text"] {
        font-size: 10px !important;
    }
    
    /* インラインスタイルのfont-sizeを上書き */
    p[data-i18n="achievement_text"][style*="font-size"],
    .achievement-box p[data-i18n="achievement_text"][style*="font-size"] {
        font-size: 10px !important;
    }
    
    /* sushimakingjapan.htmlとmatchamakingjapan.htmlの冒頭ロゴを非表示（スマホ） */
    .sushi-section .heading-block-main img,
    .matcha-section .heading-block-main img {
        display: none !important;
    }
}

/* カスタムスタイル */
.create-eat-section .card-text {
    text-align: left;
}

.service-section,
.sushi-section,
.matcha-section {
    padding: var(--spacing-xl) 0;
}

.license-section .img-wrapper img {
    max-width: 200px;
    margin: 0 auto;
}

/* デスクトップ：商標ロゴのスタイル（70%のサイズ） */
.license-section .trademark-logo {
    max-width: 210px !important; /* 300px × 0.7 = 210px */
    width: 70% !important;
    height: auto !important;
}

.license-section .trademark-container {
    flex-wrap: nowrap !important;
    gap: 40px !important;
}

/* ライセンスセクションのスタイル */
.license-section .license-heading {
    font-size: 18px !important;
    display: block;
    margin-top: 20px;
    margin-bottom: 15px;
    text-align: center;
}

.license-section .license-text {
    font-size: 12px !important;
}

.license-section .license-notice {
    font-size: 12px !important;
}

.license-section .trademark-item {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.license-section .trademark-text {
    font-size: 12px !important;
    text-align: center;
    width: 100%;
}

.award-section .card {
    margin-bottom: var(--spacing-lg);
}

.press-section,
.corporate-section,
.recruit-section,
.contact-section {
    padding: var(--spacing-xl) 0;
}

/* プレスリリースコンテンツ */
.press-content {
    margin-top: var(--spacing-lg);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.press-link-wrapper {
    color: var(--color-press-link);
    display: block;
    width: 100%;
    flex: 0 0 auto;
}

.press-link {
    color: var(--color-press-link);
    display: block;
    margin-bottom: var(--spacing-md);
    text-decoration: none;
    transition: color var(--transition);
    width: 100%;
}

.press-link:hover {
    color: var(--color-link-hover);
    text-decoration: underline;
}

.press-text {
    color: var(--text-gray);
    display: block;
    text-align: center;
    font-size: calc(var(--font-size-base) - 1px); /* 15px */
    width: 100%;
    flex: 0 0 auto;
}

.contact-section {
    background-color: var(--bg);
}

