/*
Theme Name: Nekofuru Static Theme
Theme URI: https://example.com/
Author: Mogami + ChatGPT
Author URI: https://example.com/
Description: 最小改変で既存HTMLをそのままPHP化して使う静的テーマ。フォームは send.php で同期送信。
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
Text Domain: nekofuru-static-theme
*/

/* =============================================
   style.css (共通CSS) - ねこふる
   - 吹き出しタイトルの統一
   - 無限オレンジインライン（下から1/3, z-index:-1）
   - フォームThanks画像の統一
   ※ navi（下/上）は一切変更しない
   ============================================= */

:root{
  --paint-primary:#D97706;
  --paint-accent:#F59E0B;
  --balloon-pad-y:.4rem;
  --balloon-pad-x:.9rem;
  --balloon-gap:.45rem;
  --balloon-radius:999px;
  --balloon-border:2px;
}

html {
  /* 根幹となる要素で横スクロールを隠す */
  overflow-x: hidden;
}

body {
  /* bodyの幅を画面ぴったりに固定し、中央に配置されているコンテンツの横ずれを防ぐ */
  width: 100%;
  
  /* body要素が持つデフォルトのマージンをリセット（ブラウザ間の差異解消） */
  margin: 0;
  padding: 0;
  
  /* bodyでも念のため横スクロールを隠す */
  overflow-x: hidden;
  
  /* 縦軸のみのスクロールを明示的に許可 */
  overflow-y: scroll;
}

/* 吹き出しタイトル */
.balloon-title{
  display:inline-flex;
  align-items:center;
  gap:var(--balloon-gap);
  padding:var(--balloon-pad-y) var(--balloon-pad-x);
  margin:0 0 .8rem 0;
  line-height:1.3;
  font-weight:700;
  background:#fff;
  border:var(--balloon-border) solid var(--paint-accent);
  border-radius:var(--balloon-radius);
}
h1.balloon-title,h2.balloon-title,h3.balloon-title,
h4.balloon-title,h5.balloon-title,h6.balloon-title{
  font:inherit;
  margin:0 0 .8rem 0;
}

/* 無限オレンジインライン */
html,body{ position:relative; }
.orange-inline{
  position:fixed;
  top: calc(100vh * 2/3);
  left:0; right:0;
  height:8px;
  background: linear-gradient(90deg, var(--paint-primary), var(--paint-accent));
  pointer-events:none;
  z-index:-1;
  overflow-x: hidden;
}

/* Thanks画像の見え方 */
.thanks-card{ padding:24px; background:#fff; border-radius:16px; }
.thanks-image{
  width:min(92vw, 940px);
  aspect-ratio:944/788;
  object-fit:contain;
  display:block;
  margin-inline:auto;
}

   :root{
      --paint-primary:#D97706;
      --paint-accent:#F59E0B;
      font-family:"Noto Sans JP",system-ui,-apple-system,"Segoe UI","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",Roboto,sans-serif;
    }
    body {
      font-family: inherit;
      margin: 0;
      padding: 0;
      min-height: 100vh;
      /* 下部固定ナビのぶんだけ余白を確保（SPのみで上書き解除） */
      padding-bottom: 150px;
    }

    /* ==============================
       クイックナビ (スマホ時のみ表示)
    ============================== */
    .quick-nav {
      left: 0;
      right: 0;
      width: 100%;
      display: none; /* PCでは非表示 */
      grid-template-columns: repeat(3, 1fr);
      background: #fff;
      box-shadow: 0 2px 8px rgba(0,0,0,.05);
      border-top:2px solid #D97706;
    }
    .quick-nav a {
      padding: 10px 8px;
      text-decoration: none;
      color: var(--paint-primary);
      font-weight: 600;
      font-size: 15px;
      text-align: center;
      border-right: 2px solid var(--paint-primary);
      transition: background-color 0.3s ease;
      display: flex;
      align-items: center;
      justify-content: center;
      min-height: 40px;
      word-break: keep-all;
      overflow-wrap: break-word;
      line-height: 1.3;
      -webkit-tap-highlight-color: transparent;
    }
    .quick-nav a:last-child { border-right: none; }
    .quick-nav a:hover { background-color: #FFF9E6; }
    .quick-nav .highlight { background: var(--paint-accent); color: #fff; font-weight: 700; }
    .quick-nav .highlight:hover { background: var(--paint-primary); }

    @media (max-width: 900px) { .quick-nav { display: grid; } }
    @media (max-width: 768px) {
      .quick-nav a { font-size: 14px; padding: 8px 6px; min-height: 36px; }
    }
    @media (max-width: 600px) {
      .quick-nav a { font-size: 13px; padding: 8px 4px; min-height: 36px; }
    }
    @media (max-width: 420px) {
      .quick-nav a { font-size: 12px; padding: 8px 3px; min-height: 36px; }
    }

    /* ==============================
       固定下ナビ（SPのみ）
    ============================== */
    .bottom-nav{
      position:fixed;
      left:0;
      right:0;
      bottom:0;
      z-index:1200;
      display:flex;
      align-items:center;
      justify-content:flex-start;
      gap:20px;
      padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));
      background:#ffffffef;
      border-top:2px solid #e5c27d;
      box-shadow:0 -2px 10px rgba(0,0,0,.08);
      font-family:inherit;
      min-height:80px;
      max-height:120px;
      -webkit-user-select: none;
      user-select: none;
    }
    @media (min-width:901px){
      .bottom-nav{ display:none; }
      body{ padding-bottom:0; }
    }

    .cat-container{ flex-shrink:0; display:flex; align-items:center; width:80px; min-width:80px; }
    .cat-image{ width:100%; height:auto; transform-origin:bottom center; animation:catWave 2s ease-in-out infinite; }
    @keyframes catWave{ 0%,100%{transform:rotate(0)} 50%{transform:rotate(-6deg)} }

    .contact-info{ flex-shrink:1; flex-grow:0; display:flex; flex-direction:column; gap:2px; line-height:1.3; min-width:0; overflow:hidden; }
    .contact-label{ font-size:12px; color:#666; font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .contact-tel{ font-size:20px; color:var(--paint-primary); font-weight:700; text-decoration:none; letter-spacing:0.5px; white-space:nowrap; }
    .contact-tel:hover{ text-decoration:underline; }
    .contact-hours{ font-size:11px; color:#666; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

    .button-group { display:flex; gap:12px; margin-left:auto; flex-shrink:0; }
    .btn{
      display:inline-flex; align-items:center; justify-content:center; gap:6px;
      width:100px; height:100px; min-width:100px; min-height:100px;
      border-radius:12px; text-decoration:none; font-weight:700; font-size:13px;
      transition:all .3s ease; flex-direction:column; flex-shrink:0;
      -webkit-tap-highlight-color: transparent;
    }
    .btn:hover { transform:translateY(-2px); box-shadow:0 4px 12px rgba(0,0,0,0.15); }
    .btn-mail { background: linear-gradient(135deg, #dc2626, #b91c1c); border: none; color: white; }
    .btn-mail:hover { background: linear-gradient(135deg, #b91c1c, #991b1b); }
    .btn-line { background: linear-gradient(135deg, #06c755, #00b900); border: none; color: white; }
    .btn-line:hover { background: linear-gradient(135deg, #00b900, #009900); }
    .icon-mail, .icon-line { width: 32px; height: 32px; flex-shrink:0; }

    @media (max-width:768px){
      .bottom-nav{ gap:12px; padding:10px 10px calc(10px + env(safe-area-inset-bottom,0px)); min-height:70px; max-height:90px; }
      .cat-container{ width:60px; min-width:60px; }
      .contact-info{ gap:1px; }
      .contact-label{ font-size:10px; }
      .contact-tel{ font-size:16px; }
      .contact-hours{ font-size:9px; }
      .button-group{ gap:8px; }
      .btn{ width:70px; height:70px; min-width:70px; min-height:70px; font-size:11px; border-radius:8px; }
      .icon-mail, .icon-line{ width:24px; height:24px; }
    }
    @media (max-width:480px){
      .bottom-nav{ gap:8px; padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px)); min-height:60px; max-height:80px; }
      .cat-container{ width:50px; min-width:50px; }
      .contact-label{ font-size:9px; }
      .contact-tel{ font-size:14px; }
      .contact-hours{ font-size:8px; }
      .btn{ width:60px; height:60px; min-width:60px; min-height:60px; font-size:10px; }
      .icon-mail, .icon-line{ width:20px; height:20px; }
    }
    @media (max-width:380px){
      .bottom-nav{ gap:6px; padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px)); }
      .cat-container{ width:45px; min-width:45px; }
      .contact-info{ min-width:100px; }
      .contact-label{ font-size:8px; }
      .contact-tel{ font-size:13px; }
      .contact-hours{ font-size:7px; }
      .btn{ width:55px; height:55px; min-width:55px; min-height:55px; font-size:9px; gap:4px; }
      .icon-mail, .icon-line{ width:18px; height:18px; }
    }

    /* ==============================
       ヘッダー / ナビ（共通）
    ============================== */
    .site-header{
      position: sticky;
      top:0;
      z-index:1300;
      background: rgba(255,255,255,.98);
      backdrop-filter: blur(10px);
      border-bottom: 3px solid var(--paint-primary);
      box-shadow: 0 2px 10px rgba(0,0,0,.08);
    }
    .nav{
      display:flex; align-items:center; justify-content:space-between;
      max-width: 1200px; margin: 0 auto; padding: 12px 20px; gap:20px; min-height:70px;
    }

    /* PC時のヘッダー内コンタクト情報 */
    .header-contact{ display:none; }
    @media (min-width:901px){
      .header-contact{ display:flex; align-items:center; gap:12px; }
      .header-btn{
        display:inline-flex; align-items:center; justify-content:center; gap:4px;
        width:70px; height:70px; border-radius:10px; text-decoration:none;
        font-weight:700; font-size:11px; transition:all .3s ease; flex-direction:column; flex-shrink:0;
      }
      .header-btn:hover{ transform:translateY(-2px); box-shadow:0 4px 12px rgba(0,0,0,0.15); }
      .header-btn-tel{ background: linear-gradient(135deg, var(--paint-primary), var(--paint-accent)); color:#fff; }
      .header-btn-tel:hover{ background: linear-gradient(135deg, var(--paint-accent), var(--paint-primary)); }
      .header-btn-mail{ background: linear-gradient(135deg, #dc2626, #b91c1c); color:#fff; }
      .header-btn-mail:hover{ background: linear-gradient(135deg, #b91c1c, #991b1b); }
      .header-btn-line{ background: linear-gradient(135deg, #06c755, #00b900); color:#fff; }
      .header-btn-line:hover{ background: linear-gradient(135deg, #00b900, #009900); }
      .header-icon{ width:26px; height:26px; flex-shrink:0; }
    }

    /* ロゴ・会社名 */
    .brand{ display:flex; align-items:center; gap:12px; text-decoration:none; color:inherit; }
    .brand__logo{ display:flex; align-items:center; gap:10px; }
    .brand__img{ width:48px; height:48px; border-radius:8px; object-fit:cover; border: 2px solid var(--paint-primary); }

    /* flexコンテナが縮小できるように */
    .brand__text-wrapper{
      display:flex;
      flex-direction:column;
      min-width: 0; /* flexアイテムが内容より縮小することを許可 */
    }

    .brand__name-line { display:flex; align-items:center; gap:8px; }

    /* 実績写真：高さをロゴ(48px)に合わせる */
    .brand__proof-img {
      width: auto;
      height: 48px;
      object-fit: contain;
      flex-shrink: 0;
      border-radius: 6px;
    }

    /* 会社名を1行に固定し、はみ出たら「...」 */
    .brand__name{
      font-weight:800;
      font-size:18px;
      color:#333;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .brand__tagline{ font-size:12px; color:var(--paint-primary); font-weight:600; display:flex; align-items:center; gap:4px; }

    /* PCナビリンク */
    .nav-links{
      display:flex; gap:8px; list-style:none; margin:0; padding:0; align-items:center;
    }
    .nav-links a{
      text-decoration:none; color:#333; padding:8px 14px; border-radius:20px;
      font-weight:500; font-size:15px; transition:all .3s ease; display:flex; align-items:center; gap:6px; white-space:nowrap;
    }
    .nav-links a:hover{ background:var(--paint-primary); color:#fff; transform:translateY(-2px); }
    .nav-links .highlight{ background:var(--paint-accent); color:#fff; font-weight:700; }
    .nav-links .highlight:hover{ background:var(--paint-primary); }

    /* ハンバーガー（SP） */
    .hamburger{
      display:none; width:44px; height:44px; border:0; background:transparent; cursor:pointer; position:relative; z-index: 10;
      -webkit-tap-highlight-color: transparent;
    }
    .hamburger span{ display:block; height:3px; background:var(--paint-primary); margin:6px; border-radius:2px; transition:.3s; width:28px; }
    .hamburger.is-open span:nth-child(1){ transform:translateY(9px) rotate(45deg); }
    .hamburger.is-open span:nth-child(2){ opacity:0; }
    .hamburger.is-open span:nth-child(3){ transform:translateY(-9px) rotate(-45deg); }

    /* ==============================
       レスポンシブ
    ============================== */
    @media (max-width:900px){
      .hamburger{ display:block; }
      .nav-links{
        position:fixed; top: 70px; left:0; right:0;
        flex-direction:column; background:rgba(255,255,255,0.98); backdrop-filter:blur(10px);
        padding:16px; border-bottom:2px solid var(--paint-primary);
        transform:translateY(-100%); opacity:0; pointer-events:none; transition:all .3s ease;
        box-shadow:0 4px 12px rgba(0,0,0,0.1); z-index: 1301;
      }
      .nav-links.active{ transform:translateY(0); opacity:1; pointer-events:auto; }
      .nav-links a{ width:100%; justify-content:center; }
      .brand__name{ font-size:16px; }
      .brand__tagline{ font-size:11px; }

      /* SPでもロゴの高さ(48px)に合わせる */
      .brand__proof-img { height: 48px; }
    }
    @media (max-width:640px){
      .brand__img{ width:40px; height:40px; }
      /* SP(小)でもロゴの高さ(40px)に合わせる */
      .brand__proof-img { height: 40px; }
    }

    /* --- ダミーコンテンツ --- */
    .dummy-content {
      padding: 40px 20px; max-width: 1000px; margin: 20px auto; line-height: 1.8;
      height: 1500px; background: #f9f9f9; border: 1px solid #ddd;
    }

    /* ===============================
   8. フッター（共通）
=============================== */
.site-footer{
  background:#2C2C2C; color:#E0E0E0;
  padding:48px 0 24px;
  font-family:var(--font-family-system);
}
.footer-content{
  display:grid; grid-template-columns:1.5fr 1fr;
  gap:48px; margin-bottom:32px;
}
.footer-logo{
  font-weight:bold; font-size:20px; margin-bottom:16px;
  display:flex; align-items:center; gap:8px; color:#FFF;
}
.footer-address{
  line-height:1.9; font-size:14px; color:#E0E0E0;
}
.footer-address .footer-tel{
  color:inherit; font-weight:600; text-decoration:none;
}
.footer-address .footer-tel:hover{ text-decoration:underline; }

.footer-nav ul{
  list-style:none;
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:12px; padding:0; margin:0;
}
.footer-nav a{
  font-size:14px; color:#E0E0E0; text-decoration:none; line-height:1.6;
  display:inline-block; transition:color .25s ease;
}
.footer-nav a:hover{ color:#FFD54F; }

.footer-copyright{
  text-align:center; padding-top:24px; border-top:1px solid #444;
  font-size:13px; color:#BDBDBD; line-height:1.6;
}

/* footer responsive */
@media(max-width:768px){
  .footer-content{ grid-template-columns:1fr; gap:32px; }
  .footer-nav ul{ grid-template-columns:1fr 1fr; }
  .footer-logo{ font-size:18px; }
  .footer-address{ font-size:13px; line-height:1.8; }
  .footer-nav a{ font-size:13px; }
  .footer-copyright{ font-size:12px; }
}

    

    

    



/* ===============================
   NAV LOCK (pure nav from style.css)
   強制的にナビの見た目を固定（他CSSの影響を受けないようにする）
   =============================== */

/* Quick Nav */
.quick-nav{
  left:0; right:0; width:100%;
  display:none;
  grid-template-columns:repeat(3,1fr);
  background:#fff;
  box-shadow:0 2px 8px rgba(0,0,0,.05);
  border-top:2px solid var(--paint-primary);
}
.quick-nav a{
  padding:10px 8px;
  text-decoration:none;
  color:var(--paint-primary);
  font-weight:600;
  font-size:15px;
  text-align:center;
  border-right:2px solid var(--paint-primary);
  transition:background-color .3s ease;
  display:flex; align-items:center; justify-content:center;
  min-height:40px; word-break:keep-all; overflow-wrap:break-word;
  line-height:1.3; -webkit-tap-highlight-color:transparent;
}
.quick-nav a:last-child{ border-right:none; }
.quick-nav a:hover{ background-color:#FFF9E6; }
.quick-nav .highlight{ background:var(--paint-accent); color:#fff; font-weight:700; }
.quick-nav .highlight:hover{ background:var(--paint-primary); }
@media (max-width:900px){ .quick-nav{ display:grid; } }
@media (max-width:768px){ .quick-nav a{ font-size:14px; padding:8px 6px; min-height:36px; } }
@media (max-width:600px){ .quick-nav a{ font-size:13px; padding:8px 4px; min-height:36px; } }
@media (max-width:420px){ .quick-nav a{ font-size:12px; padding:8px 3px; min-height:36px; } }

/* Bottom Nav (scoped to .bottom-nav only) */
.bottom-nav{
  position:fixed; left:0; right:0; bottom:0; z-index:1200;
  display:flex; align-items:center; justify-content:flex-start; gap:20px;
  padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));
  background:#ffffffef; border-top:2px solid #e5c27d;
  box-shadow:0 -2px 10px rgba(0,0,0,.08);
  font-family:inherit; min-height:80px; max-height:120px;
  -webkit-user-select:none; user-select:none;
}
@media (min-width:901px){
  .bottom-nav{ display:none; }
  body{ padding-bottom:0; } /* PCでは余白解除 */
}

/* bottom-nav 内の要素に限定して指定（他CSSとの衝突回避） */
.bottom-nav .cat-container{ flex-shrink:0; display:flex; align-items:center; width:80px; min-width:80px; }
.bottom-nav .cat-image{ width:100%; height:auto; transform-origin:bottom center; animation:catWave 2s ease-in-out infinite; }
@keyframes catWave{ 0%,100%{transform:rotate(0)} 50%{transform:rotate(-6deg)} }

.bottom-nav .contact-info{ flex-shrink:1; flex-grow:0; display:flex; flex-direction:column; gap:2px; line-height:1.3; min-width:0; overflow:hidden; }
.bottom-nav .contact-label{ font-size:12px; color:#666; font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.bottom-nav .contact-tel{ font-size:20px; color:var(--paint-primary); font-weight:700; text-decoration:none; letter-spacing:.5px; white-space:nowrap; }
.bottom-nav .contact-tel:hover{ text-decoration:underline; }
.bottom-nav .contact-hours{ font-size:11px; color:#666; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

.bottom-nav .button-group{ display:flex; gap:12px; margin-left:auto; flex-shrink:0; }
.bottom-nav .btn{
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  width:100px; height:100px; min-width:100px; min-height:100px;
  border-radius:12px; text-decoration:none; font-weight:700; font-size:13px;
  transition:transform .3s ease, box-shadow .3s ease, background .3s ease;
  flex-direction:column; flex-shrink:0; -webkit-tap-highlight-color:transparent;
}
.bottom-nav .btn:hover{ transform:translateY(-2px); box-shadow:0 4px 12px rgba(0,0,0,0.15); }
.bottom-nav .btn-mail{ background:linear-gradient(135deg,#dc2626,#b91c1c); border:none; color:#fff; }
.bottom-nav .btn-mail:hover{ background:linear-gradient(135deg,#b91c1c,#991b1b); }
.bottom-nav .btn-line{ background:linear-gradient(135deg,#06c755,#00b900); border:none; color:#fff; }
.bottom-nav .btn-line:hover{ background:linear-gradient(135deg,#00b900,#009900); }
.bottom-nav .icon-mail, .bottom-nav .icon-line{ width:32px; height:32px; flex-shrink:0; }

@media (max-width:768px){
  .bottom-nav{ gap:12px; padding:10px 10px calc(10px + env(safe-area-inset-bottom,0px)); min-height:70px; max-height:90px; }
  .bottom-nav .cat-container{ width:60px; min-width:60px; }
  .bottom-nav .contact-label{ font-size:10px; }
  .bottom-nav .contact-tel{ font-size:16px; }
  .bottom-nav .contact-hours{ font-size:9px; }
  .bottom-nav .button-group{ gap:8px; }
  .bottom-nav .btn{ width:70px; height:70px; min-width:70px; min-height:70px; font-size:11px; border-radius:8px; }
  .bottom-nav .icon-mail, .bottom-nav .icon-line{ width:24px; height:24px; }
}
@media (max-width:480px){
  .bottom-nav{ gap:8px; padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px)); min-height:60px; max-height:80px; }
  .bottom-nav .cat-container{ width:50px; min-width:50px; }
  .bottom-nav .contact-label{ font-size:9px; }
  .bottom-nav .contact-tel{ font-size:14px; }
  .bottom-nav .contact-hours{ font-size:8px; }
  .bottom-nav .btn{ width:60px; height:60px; min-width:60px; min-height:60px; font-size:10px; }
}

/* =============================================
   共通ナビゲーション構造 (上部/下部)
   ============================================= */

/* Header 基本構造 */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1300;
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(10px);
  border-bottom: 3px solid var(--paint-primary);
  box-shadow: 0 2px 10px rgba(0, 0, 0, .08);
}
.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1200px;
  margin: 0 auto;
  padding: 12px 20px;
  gap: 20px;
  min-height: 70px;
}

/* ブランドロゴ */
.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  color: inherit;
}
.brand__logo { display: flex; align-items: center; gap: 10px; }
.brand__img {
  width: 48px;
  height: 48px;
  border-radius: 8px;
  object-fit: cover;
  border: 2px solid var(--paint-primary);
}
.brand__text-wrapper { display: flex; flex-direction: column; }
.brand__name { font-weight: 800; font-size: 18px; color: #333; }
.brand__tagline { font-size: 12px; color: var(--paint-primary); font-weight: 600; }

/* PC時の連絡ボタン群 */
.header-contact { display: none; }
@media (min-width:901px) {
  .header-contact { display: flex; align-items: center; gap: 12px; }
  .header-btn {
    display: inline-flex; align-items: center; justify-content: center;
    gap: 4px; width: 70px; height: 70px;
    border-radius: 10px; text-decoration: none;
    font-weight: 700; font-size: 11px;
    color: #fff; transition: all .3s ease;
  }
  .header-btn-tel { background: linear-gradient(135deg, #F59E0B, #D97706); }
  .header-btn-mail { background: linear-gradient(135deg, #991b1b, #b91c1c); }
  .header-btn-line { background: linear-gradient(135deg, #06c755, #00b900); }
  .header-btn:hover { transform: translateY(-2px); }
  .header-icon { width: 26px; height: 26px; flex-shrink: 0; }
}

/* PC用ナビリンク */
.nav-links {
  display: flex; gap: 8px;
  list-style: none; margin: 0; padding: 0;
  align-items: center;
}
.nav-links a {
  text-decoration: none; color: #333;
  padding: 8px 14px; border-radius: 20px;
  font-weight: 500; font-size: 15px;
  transition: all .3s ease;
  display: flex; align-items: center; gap: 6px;
}
.nav-links a:hover { background: var(--paint-primary); color: #fff; transform: translateY(-2px); }
.nav-links .highlight { background: var(--paint-accent); color: #fff; font-weight: 700; }
.nav-links .highlight:hover { background: var(--paint-primary); }

/* ハンバーガー（SP） */
.hamburger {
  display: none; width: 44px; height: 44px;
  border: 0; background: transparent;
  cursor: pointer; position: relative; z-index: 1302;
  -webkit-tap-highlight-color: transparent;
}
.hamburger span {
  display: block; height: 3px; background: var(--paint-primary);
  margin: 6px; border-radius: 2px; transition: .3s; width: 28px;
}
.hamburger.is-open span:nth-child(1){ transform: translateY(9px) rotate(45deg); }
.hamburger.is-open span:nth-child(2){ opacity: 0; }
.hamburger.is-open span:nth-child(3){ transform: translateY(-9px) rotate(-45deg); }

/* SPドロワー */
@media (max-width:900px) {
  .hamburger{ display:block; }
  .nav-links {
    position: fixed; top: 70px; left: 0; right: 0;
    flex-direction: column;
    background: rgba(255,255,255,0.98);
    backdrop-filter: blur(10px);
    padding: 16px;
    border-bottom: 2px solid var(--paint-primary);
    transform: translateY(-100%);
    opacity: 0; pointer-events: none;
    transition: transform .3s ease, opacity .3s ease;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    z-index: 1301;
  }
  .nav-links.active {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
  }
  .nav-links a { width: 100%; justify-content: center; }
}

/* SP下部クイックナビ */
.quick-nav {
  left: 0; right: 0; width: 100%;
  display: none;
  grid-template-columns: repeat(3, 1fr);
  background: #fff;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
  border-top: 2px solid var(--paint-primary);
}
.quick-nav a {
  padding: 10px 8px;
  text-decoration: none;
  color: var(--paint-primary);
  font-weight: 600;
  font-size: 15px;
  text-align: center;
  border-right: 2px solid var(--paint-primary);
  transition: background-color .3s ease;
  display: flex; align-items: center; justify-content: center;
  min-height: 40px;
  word-break: keep-all; line-height: 1.3;
  -webkit-tap-highlight-color: transparent;
}
.quick-nav a:last-child { border-right: none; }
.quick-nav a:hover { background-color: #FFF9E6; }
.quick-nav .highlight { background: var(--paint-accent); color: #fff; font-weight: 700; }
.quick-nav .highlight:hover { background: var(--paint-primary); }

@media (max-width:900px){ .quick-nav{ display:grid; } }
@media (max-width:768px){ .quick-nav a{ font-size:14px; padding:8px 6px; } }
@media (max-width:600px){ .quick-nav a{ font-size:13px; padding:8px 4px; } }
@media (max-width:420px){ .quick-nav a{ font-size:12px; padding:8px 3px; } }

