<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>大阪食案内 | 大阪のレストラン・食堂ガイド</title>
    <meta
      name="description"
      content="大阪の食堂・レストラン文化を紹介する情報ガイド。お好み焼き、串カツ、ラーメン、喫茶まで。予約代行や販売は行わず、選び方のヒントのみを提供します。"
    />
    <meta name="robots" content="index, follow" />
    <link rel="preconnect" href="https://fonts.googleapis.com" />
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
    <link
      href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+JP:wght@400;500;600;700&family=Shippori+Mincho:wght@500;700;800&display=swap"
      rel="stylesheet"
    />
    <style>
      :root {
        --ink: #1c1612;
        --mist: #ebe4db;
        --steam: #f6f1ea;
        --lantern: #c0392b;
        --soy: #3a2a22;
        --ash: #6a5e55;
        --line: rgba(28, 22, 18, 0.12);
      }

      * {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
      }

      html {
        scroll-behavior: smooth;
      }

      body {
        font-family: "IBM Plex Sans JP", sans-serif;
        color: var(--ink);
        background:
          radial-gradient(ellipse 85% 50% at 8% 0%, rgba(192, 57, 43, 0.08), transparent 55%),
          radial-gradient(ellipse 65% 40% at 100% 15%, rgba(58, 42, 34, 0.07), transparent 50%),
          var(--mist);
        line-height: 1.75;
      }

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

      .nav {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: 30;
        display: flex;
        justify-content: center;
        padding: 1rem;
        pointer-events: none;
      }

      .nav-inner {
        pointer-events: auto;
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 0.35rem 1.35rem;
        padding: 0.7rem 1.35rem;
        background: rgba(246, 241, 234, 0.88);
        border: 1px solid var(--line);
        backdrop-filter: blur(14px);
        font-size: 0.84rem;
        font-weight: 700;
        letter-spacing: 0.06em;
      }

      .nav a:hover {
        color: var(--lantern);
      }

      .hero {
        min-height: 100vh;
        min-height: 100svh;
        position: relative;
        display: grid;
        place-items: center;
        text-align: center;
        color: #f7f2eb;
        overflow: hidden;
        background: var(--soy);
      }

      .hero-bg {
        position: absolute;
        inset: 0;
        background:
          linear-gradient(180deg, rgba(28, 22, 18, 0.32) 0%, rgba(28, 22, 18, 0.76) 100%),
          url("https://images.unsplash.com/photo-1553621042-f6e147245754?auto=format&fit=crop&w=2400&q=84")
            center / cover;
        transform: scale(1.06);
        animation: zoomOut 1.5s ease-out both, drift 22s ease-in-out 1.5s infinite alternate;
      }

      .hero-copy {
        position: relative;
        z-index: 1;
        width: min(720px, calc(100% - 2.4rem));
        padding: 5rem 0 3rem;
      }

      .brand {
        font-family: "Shippori Mincho", serif;
        font-size: clamp(2.5rem, 8vw, 4.2rem);
        font-weight: 800;
        letter-spacing: 0.12em;
        line-height: 1.1;
        margin-bottom: 1.1rem;
        animation: rise 0.9s ease-out 0.15s both;
      }

      .hero h1 {
        font-family: "Shippori Mincho", serif;
        font-size: clamp(1.3rem, 3.5vw, 1.95rem);
        font-weight: 700;
        letter-spacing: 0.04em;
        line-height: 1.45;
        margin-bottom: 0.9rem;
        animation: rise 0.9s ease-out 0.3s both;
      }

      .hero-lead {
        font-size: 1rem;
        color: rgba(247, 242, 235, 0.88);
        max-width: 34rem;
        margin: 0 auto 1.75rem;
        animation: rise 0.9s ease-out 0.45s both;
      }

      .cta {
        display: inline-block;
        padding: 0.85rem 1.6rem;
        background: var(--lantern);
        color: #fff;
        font-weight: 700;
        letter-spacing: 0.08em;
        font-size: 0.9rem;
        animation: rise 0.9s ease-out 0.6s both;
        transition: transform 0.2s ease, background 0.2s ease;
      }

      .cta:hover {
        transform: translateY(-2px);
        background: #a33024;
      }

      .section {
        padding: clamp(3.5rem, 8vw, 5.5rem) 1.25rem;
      }

      .section-inner {
        width: min(1080px, 100%);
        margin: 0 auto;
      }

      .section-head {
        max-width: 38rem;
        margin-bottom: 2.4rem;
      }

      .section-head h2 {
        font-family: "Shippori Mincho", serif;
        font-size: clamp(1.6rem, 3.5vw, 2.2rem);
        font-weight: 700;
        letter-spacing: 0.06em;
        margin-bottom: 0.7rem;
      }

      .section-head p {
        color: var(--ash);
        font-size: 0.98rem;
      }

      .dishes {
        display: grid;
        gap: 1.35rem;
      }

      @media (min-width: 760px) {
        .dishes {
          grid-template-columns: 1fr 1fr;
        }
      }

      .dish {
        display: grid;
        grid-template-columns: 120px 1fr;
        gap: 1.1rem;
        align-items: start;
        padding: 1.15rem;
        background: var(--steam);
        border: 1px solid var(--line);
        animation: rise 0.8s ease-out both;
      }

      .dish:nth-child(2) { animation-delay: 0.08s; }
      .dish:nth-child(3) { animation-delay: 0.16s; }
      .dish:nth-child(4) { animation-delay: 0.24s; }

      .dish-mark {
        display: grid;
        place-items: center;
        min-height: 120px;
        background: var(--soy);
        color: #f7f2eb;
        font-family: "Shippori Mincho", serif;
        font-size: 1.35rem;
        letter-spacing: 0.12em;
        font-weight: 700;
      }

      .dish h3 {
        font-family: "Shippori Mincho", serif;
        font-size: 1.2rem;
        margin-bottom: 0.4rem;
        letter-spacing: 0.04em;
      }

      .dish p {
        color: var(--ash);
        font-size: 0.92rem;
      }

      .areas {
        background: var(--soy);
        color: #f6f1ea;
      }

      .areas .section-head h2,
      .areas .section-head p {
        color: #f6f1ea;
      }

      .areas .section-head p {
        opacity: 0.86;
      }

      .area-list {
        display: grid;
        gap: 1.1rem;
      }

      @media (min-width: 720px) {
        .area-list {
          grid-template-columns: repeat(3, 1fr);
        }
      }

      .area {
        padding: 1.25rem 1.2rem;
        border: 1px solid rgba(246, 241, 234, 0.18);
        background: rgba(255, 255, 255, 0.05);
        animation: rise 0.8s ease-out both;
      }

      .area:nth-child(2) { animation-delay: 0.08s; }
      .area:nth-child(3) { animation-delay: 0.16s; }

      .area h3 {
        font-family: "Shippori Mincho", serif;
        font-size: 1.15rem;
        margin-bottom: 0.45rem;
        letter-spacing: 0.05em;
      }

      .area p {
        font-size: 0.9rem;
        opacity: 0.88;
      }

      .etiquette {
        display: grid;
        gap: 1.2rem;
      }

      @media (min-width: 800px) {
        .etiquette {
          grid-template-columns: repeat(4, 1fr);
        }
      }

      .rule {
        padding: 1.35rem 1.15rem;
        background: var(--steam);
        border-top: 3px solid var(--lantern);
      }

      .rule:nth-child(2) { border-color: #b7791f; }
      .rule:nth-child(3) { border-color: #2f6b4f; }
      .rule:nth-child(4) { border-color: #3d5570; }

      .rule h3 {
        font-family: "Shippori Mincho", serif;
        font-size: 1.1rem;
        margin-bottom: 0.45rem;
      }

      .rule p {
        color: var(--ash);
        font-size: 0.9rem;
      }

      .note {
        margin-top: 2rem;
        padding: 1rem 1.2rem;
        border: 1px solid var(--line);
        background: var(--steam);
        font-size: 0.88rem;
        color: var(--ash);
      }

      .finale {
        position: relative;
        min-height: 56vh;
        display: grid;
        place-items: center;
        text-align: center;
        color: #f7f2eb;
        overflow: hidden;
        background: var(--ink);
      }

      .finale-bg {
        position: absolute;
        inset: 0;
        background:
          linear-gradient(180deg, rgba(28, 22, 18, 0.45), rgba(28, 22, 18, 0.8)),
          url("https://images.unsplash.com/photo-1414235077428-338989a2e8c0?auto=format&fit=crop&w=2400&q=84")
            center / cover;
        animation: drift 24s ease-in-out infinite alternate;
      }

      .finale-inner {
        position: relative;
        z-index: 1;
        width: min(640px, calc(100% - 2.4rem));
        padding: 4rem 0;
      }

      .finale .brand {
        font-size: clamp(2rem, 6vw, 3rem);
        margin-bottom: 0.9rem;
      }

      .finale p {
        margin-bottom: 1.5rem;
        opacity: 0.9;
      }

      footer {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        gap: 1rem;
        padding: 1.5rem 1.25rem;
        background: var(--ink);
        color: rgba(246, 241, 234, 0.75);
        font-size: 0.85rem;
      }

      footer nav {
        display: flex;
        gap: 1.1rem;
      }

      footer a:hover {
        color: #fff;
      }

      @keyframes rise {
        from {
          opacity: 0;
          transform: translateY(18px);
        }
        to {
          opacity: 1;
          transform: translateY(0);
        }
      }

      @keyframes zoomOut {
        from {
          transform: scale(1.12);
        }
        to {
          transform: scale(1.06);
        }
      }

      @keyframes drift {
        from {
          transform: scale(1.06) translate3d(0, 0, 0);
        }
        to {
          transform: scale(1.1) translate3d(-1.5%, -1%, 0);
        }
      }

      @media (prefers-reduced-motion: reduce) {
        *,
        *::before,
        *::after {
          animation: none !important;
          transition: none !important;
        }
      }
    </style>
  </head>
  <body>
    <nav class="nav" aria-label="メインナビゲーション">
      <div class="nav-inner">
        <a href="#top">ホーム</a>
        <a href="#dishes">名物</a>
        <a href="#areas">エリア</a>
        <a href="#tips">選び方</a>
        <a href="/contact.html">お問い合わせ</a>
      </div>
    </nav>

    <header class="hero" id="top">
      <div class="hero-bg" aria-hidden="true"></div>
      <div class="hero-copy">
        <p class="brand">大阪食案内</p>
        <h1>大阪の食堂文化を、もっと身近に。</h1>
        <p class="hero-lead">
          お好み焼き、串カツ、ラーメン、喫茶。エリアごとの雰囲気と、はじめてでも安心な選び方を日本語で紹介します。
        </p>
        <a class="cta" href="#dishes">名物ジャンルを見る</a>
      </div>
    </header>

    <section class="section" id="dishes">
      <div class="section-inner">
        <div class="section-head">
          <h2>大阪で押さえたい名物</h2>
          <p>「なんでもあり」の街だからこそ、ジャンルごとの特徴を知ると店選びが楽になります。</p>
        </div>
        <div class="dishes">
          <article class="dish">
            <div class="dish-mark" aria-hidden="true">鉄板</div>
            <div>
              <h3>お好み焼き・ねぎ焼き</h3>
              <p>粉もの文化の代表。ソースの濃さ、ねぎの量、トッピングの自由度で店の個性が出ます。</p>
            </div>
          </article>
          <article class="dish">
            <div class="dish-mark" aria-hidden="true">串</div>
            <div>
              <h3>串カツ</h3>
              <p>二度漬け禁止のルールを守りつつ、定番から一品料理まで。立ち食いもテーブル席も選べます。</p>
            </div>
          </article>
          <article class="dish">
            <div class="dish-mark" aria-hidden="true">麺</div>
            <div>
              <h3>ラーメン・うどん</h3>
              <p>濃厚スープからあっさり系まで。昼ピークは短時間で回る店を選ぶと待ち時間が減ります。</p>
            </div>
          </article>
          <article class="dish">
            <div class="dish-mark" aria-hidden="true">喫茶</div>
            <div>
              <h3>喫茶・軽食</h3>
              <p>モーニング、トースト、ナポリタン。観光の合間に、落ち着いた時間を取るのに向いています。</p>
            </div>
          </article>
        </div>
      </div>
    </section>

    <section class="section areas" id="areas">
      <div class="section-inner">
        <div class="section-head">
          <h2>エリアで変わる空気感</h2>
          <p>同じ大阪でも、商店街・地下街・繁華街で店のリズムは違います。</p>
        </div>
        <div class="area-list">
          <article class="area">
            <h3>梅田・キタ</h3>
            <p>地下街と駅直結が多いエリア。時間に追われる日でも、選択肢を広げやすいです。</p>
          </article>
          <article class="area">
            <h3>難波・ミナミ</h3>
            <p>観光客も地元客も多い夜の拠点。人気店は開店直後かラストオーダー前が狙い目です。</p>
          </article>
          <article class="area">
            <h3>天満・福島・周辺</h3>
            <p>地元寄りのにぎわい。居酒屋・食堂・立ち飲みが近く、はしごしやすい街歩き向きです。</p>
          </article>
        </div>
      </div>
    </section>

    <section class="section" id="tips">
      <div class="section-inner">
        <div class="section-head">
          <h2>はじめてでも安心な選び方</h2>
          <p>予約サイトではありません。店選びの判断材料だけを整理しています。</p>
        </div>
        <div class="etiquette">
          <article class="rule">
            <h3>時間帯</h3>
            <p>昼は11:30前後、夜は開店直後が比較的入りやすいことが多いです。</p>
          </article>
          <article class="rule">
            <h3>メニュー確認</h3>
            <p>アレルギーや苦手食材がある場合は、注文前にスタッフへ伝えましょう。</p>
          </article>
          <article class="rule">
            <h3>混雑時</h3>
            <p>回転の速い店でも、相席や待ち時間のルールは店ごとに異なります。</p>
          </article>
          <article class="rule">
            <h3>最新情報</h3>
            <p>営業時間・定休日・価格は変更されます。来店前に公式情報を確認してください。</p>
          </article>
        </div>
        <p class="note">
          大阪食案内は情報提供のみを目的としています。飲食店の予約代行、食事券の販売、決済処理は行いません。
        </p>
      </div>
    </section>

    <section class="finale" id="close">
      <div class="finale-bg" aria-hidden="true"></div>
      <div class="finale-inner">
        <p class="brand">大阪食案内</p>
        <p>今夜は、どの看板の灯りを目指しますか。</p>
        <a class="cta" href="#dishes">名物をもう一度見る</a>
      </div>
    </section>

    <footer>
      <p>大阪食案内 · restauraosaka.store</p>
      <nav aria-label="フッター">
        <a href="/privacy-policy.html">プライバシー</a>
        <a href="/terms-and-services.html">利用規約</a>
        <a href="/contact.html">お問い合わせ</a>
      </nav>
    </footer>
  </body>
</html>
