  /* ============ Design Tokens ============ */
  :root{
    --indigo-900:#182848;
    --indigo-700:#233a63;
    --vermillion:#c8442c;
    --gold:#b6903f;
    --cream:#faf6ee;
    --cream-deep:#f1ead9;
    --ink:#26241f;
    --line:#e4dcc8;
    --white:#ffffff;

    --font-display:'Shippori Mincho', serif;
    --font-body:'Noto Sans JP', sans-serif;

    --radius-s:6px;
    --radius-m:14px;
    --shadow-card:0 6px 20px rgba(24,40,72,0.08);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    font-family:var(--font-body);
    color:var(--ink);
    background:var(--cream);
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  .container{max-width:960px;margin:0 auto;padding:0 20px;}
  .eyebrow{
    font-size:12px;
    letter-spacing:.14em;
    color:var(--vermillion);
    font-weight:700;
  }

  .seigaiha{
    background-image:
      radial-gradient(circle at 50% 100%, transparent 22%, rgba(255,255,255,.08) 23%, rgba(255,255,255,.08) 26%, transparent 27%),
      radial-gradient(circle at 0% 100%, transparent 22%, rgba(255,255,255,.08) 23%, rgba(255,255,255,.08) 26%, transparent 27%),
      radial-gradient(circle at 100% 100%, transparent 22%, rgba(255,255,255,.08) 23%, rgba(255,255,255,.08) 26%, transparent 27%);
    background-size:44px 22px;
  }

  .site-header{
    background:#000000;
    color:var(--white);
    padding:14px 0;
  }
  .site-header .container{display:flex;align-items:center;justify-content:space-between;}
  .brand{font-family:var(--font-display);font-size:15px;letter-spacing:.06em;}
  .brand span{color:#d8c9a0;font-size:11px;display:block;letter-spacing:.14em;margin-top:2px;}
  .site-header a.header-link{
    font-size:12px;
    color:var(--white) !important;
    border:1px solid rgba(255,255,255,.5);
    padding:7px 14px;
    border-radius:999px;
    text-decoration:none !important;
  }

.site-header .header-brand a{
  display:inline-block;
}

.site-header .header-brand img{
  width:200px;
  height:auto;
  display:block;
}

  .hero{
    position:relative;
    background:var(--indigo-900);
  }
  .hero-video{
    position:relative;
    width:100%;
    overflow:hidden;
    cursor:pointer;
    line-height:0; /* pictureの下に余白ができるのを防ぐ */
  }
  .hero-video picture{display:block;}
  .hero-video__poster{width:100%;height:auto;display:block;}
  .hero-video__frame{position:absolute;inset:0;width:100%;height:100%;border:0;}
  .hero-video__scrim{
    position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(24,40,72,.05) 0%, rgba(24,40,72,.55) 78%, rgba(24,40,72,.75) 100%);
  }
  .hero-video__play{
    position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
    width:76px;height:76px;border-radius:50%;
    background:rgba(24,40,72,.55);
    border:2px solid rgba(255,255,255,.9);
    display:flex;align-items:center;justify-content:center;
    cursor:pointer;transition:transform .2s ease, background .2s ease;
  }
  .hero-video__play:hover{transform:translate(-50%,-50%) scale(1.08);background:rgba(24,40,72,.8);}
  .hero-video__play svg{margin-left:4px;}

  .hero-copy{
    position:absolute;left:0;right:0;bottom:0;
    padding:22px 20px 26px;
    color:var(--white);
    pointer-events:none;
  }
  .hero-copy .eyebrow{color:#e8c98f;}
  .hero-copy h1{
    font-family:var(--font-display);
    font-size:clamp(22px,5.6vw,34px);
    line-height:1.35;
    margin:6px 0 10px;
    font-weight:700;
  }
  .hero-period{
    display:inline-flex;align-items:center;gap:8px;
    font-size:13px;
    background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.35);
    padding:6px 12px;
    border-radius:999px;
  }
  .hero-period strong{font-size:14px;}

  /* ============ Video Modal 元 ============ */
 /*  .video-modal{
    position:fixed;inset:0;z-index:100;
    display:none;
    align-items:center;justify-content:center;
    padding:24px;
  }
  .video-modal.open{display:flex;}
  .video-modal__backdrop{
    position:absolute;inset:0;
    background:rgba(15,18,28,.9);
  }
  .video-modal__inner{
    position:relative;
    width:100%;
    max-width:900px;
    aspect-ratio:16/9;
    background:#000;
    border-radius:var(--radius-m);
    overflow:hidden;
  }
  .video-modal__inner.is-vertical{
    max-width:420px;
    width:auto;
    aspect-ratio:9/16;
    max-height:88vh;
  }
  .video-modal__frame-wrap{position:absolute;inset:0;}
  .video-modal__frame-wrap iframe{width:100%;height:100%;border:0;}
  .video-modal__close{
    position:absolute;top:-40px;right:0;
    width:34px;height:34px;
    border:1px solid rgba(255,255,255,.6);
    border-radius:50%;
    background:rgba(0,0,0,.4);
    color:#fff;
    font-size:18px;line-height:1;
    cursor:pointer;
  }
  @media(max-width:480px){
    .video-modal__close{top:-38px;right:0;}
  }
*/

/* ============ Video Modal ============ */

.video-modal{
  position:fixed;
  inset:0;
  z-index:1000;
  display:none;
  align-items:center;
  justify-content:center;
  padding:50px 24px 24px;
}

.video-modal.open{
  display:flex;
}

/* 黒背景 */
.video-modal__backdrop{
  position:absolute;
  inset:0;
  z-index:1;
  background:rgba(15,18,28,.92);
}

/* 動画本体 */
.video-modal__inner{
  position:relative;
  z-index:2;

  width:min(900px, calc(100vw - 48px));
  aspect-ratio:16/9;

  background:#000;
  border-radius:14px;
  overflow:visible;
}

/* スマホ縦動画 */
.video-modal__inner.is-vertical{
  width:min(
    420px,
    calc(100vw - 48px),
    calc(82vh * 9 / 16)
  );

  max-width:none;
  aspect-ratio:9/16;
}

/* iframe領域 */
.video-modal__frame-wrap{
  position:absolute;
  inset:0;
  overflow:hidden;
  border-radius:14px;
}

.video-modal__frame-wrap iframe{
  display:block;
  width:100%;
  height:100%;
  border:0;
}

/* 閉じるボタン */
.video-modal__close{
  position:absolute;
  z-index:3;
  top:-42px;
  right:0;

  width:34px;
  height:34px;

  border:1px solid rgba(255,255,255,.6);
  border-radius:50%;

  background:rgba(0,0,0,.5);
  color:#fff;

  font-size:18px;
  line-height:1;
  cursor:pointer;
}

/* ============ 今月のひと皿 SEO紹介文 ============ */
.hitosara-intro{
  padding:36px 0 18px;
  text-align:center;
}

.hitosara-intro h2{
  font-family:var(--font-display);
  font-size:22px;
  margin:0 0 14px;
}

.hitosara-intro p{
  max-width:720px;
  margin:0 auto;
  font-size:13px;
  line-height:2;
  color:#54503f;
}

@media(max-width:640px){
  .hitosara-intro{
    padding:28px 0 14px;
  }

  .hitosara-intro h2{
    font-size:19px;
  }

  .hitosara-intro p{
    font-size:12.8px;
    text-align:left;
  }
}

  /* ============ Sticky CTA ============ */
  .sticky-cta{
    position:sticky;top:0;z-index:40;
    background:#ff0000;
    color:var(--white);
  }
  .sticky-cta .container{
    display:flex;align-items:center;justify-content:space-between;
    padding:10px 20px;gap:12px;
  }
  .sticky-cta__msg{font-size:12.5px;line-height:1.4;}
  .sticky-cta__msg strong{display:block;font-size:23px;}
  .sticky-cta a.sticky-cta__btn{
    flex:none;
    background:var(--white) !important;
    color:var(--vermillion) !important;
    font-weight:700;
    font-size:13px;
    padding:9px 16px;
    border-radius:999px;
    white-space:nowrap;
    text-decoration:none !important;
  }

  /* ============ Section shared ============ */
  section{padding:52px 0;}
  .section-head{text-align:center;margin-bottom:30px;}
  .section-head h2{
    font-family:var(--font-display);
    font-size:24px;
    margin:8px 0 0;
  }

  /* ============ Featured dish ============ */
  .featured{
    background:var(--indigo-900);
    color:var(--white);
    border-radius:var(--radius-m);
    overflow:hidden;
    box-shadow:var(--shadow-card);
    position:relative;
  }
  .featured::before{
    content:'';position:absolute;top:0;left:0;right:0;height:10px;
  }
  .featured-inner{display:grid;gap:0;}
  @media(min-width:640px){ .featured-inner{grid-template-columns:1.1fr 1fr;align-items:center;} }
  .featured-img{width:100%;aspect-ratio:1/1;object-fit:cover;}
  .featured-body{padding:26px 24px 30px;}
  .featured-badge{
    display:inline-block;
    font-size:11px;letter-spacing:.1em;
    background:var(--gold);color:var(--indigo-900);
    font-weight:700;
    padding:4px 10px;border-radius:4px;
    margin-bottom:12px;
  }
  .featured-body h3{font-family:var(--font-display);font-size:22px;margin:0 0 8px;}
  .featured-price{font-size:15px;color:#e8c98f;margin-bottom:12px;}
  .featured-body p{font-size:13.5px;line-height:1.9;color:#dfe4ee;margin:0;}

  /* ============ Menu grid ============ */
  .menu-grid{
    display:grid;grid-template-columns:1fr;gap:16px;
  }
  @media(min-width:640px){ .menu-grid{grid-template-columns:1fr 1fr;} }
  .dish-card{
    background:var(--white);
    border:1px solid var(--line);
    border-radius:var(--radius-m);
    overflow:hidden;
    box-shadow:var(--shadow-card);
    display:flex;flex-direction:column;
  }
  .dish-card__img{width:100%;aspect-ratio:4/3;object-fit:cover;}
  .dish-card__body{padding:16px 18px 18px;flex:1;display:flex;flex-direction:column;}
  .dish-card__top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;}
  .dish-card__name{font-family:var(--font-display);font-size:16.5px;font-weight:700;}
  .dish-card__price{font-size:13px;color:var(--vermillion);font-weight:700;white-space:nowrap;}
  .dish-card__area{
    display:inline-block;margin-top:6px;
    font-size:10.5px;color:var(--indigo-700);
    background:var(--cream-deep);
    padding:2px 8px;border-radius:999px;
    width:fit-content;
  }
  .dish-card__desc{font-size:12.8px;line-height:1.8;color:#54503f;margin:10px 0 14px;flex:1;}
  .dish-card__share{
    display:flex;gap:8px;
  }
  a.share-btn{
    font-size:11px;
    border:1px solid var(--line);
    border-radius:999px;
    padding:6px 12px;
    display:inline-flex;align-items:center;gap:5px;
    color:var(--indigo-700) !important;
    text-decoration:none !important;
    background:var(--white);
  }
  a.share-btn:visited{color:var(--indigo-700) !important;}
  a.share-btn:hover{background:var(--cream-deep);}

  /* ============ SNS Campaign band ============ */
  .campaign{
    background:var(--cream-deep);
    border-radius:var(--radius-m);
    padding:30px 24px;
    text-align:center;
  }
  .campaign h3{font-family:var(--font-display);font-size:19px;margin:0 0 10px;}
  .campaign p{font-size:13px;line-height:1.9;color:#54503f;margin:0 0 16px;}
  .campaign .tag{
    display:inline-block;font-family:var(--font-display);
    font-size:18px;color:var(--vermillion);
    border-bottom:2px solid var(--vermillion);
    padding-bottom:2px;margin-bottom:16px;
  }

  /* ============ FAQ ============ */
  .faq-item{border-bottom:1px solid var(--line);}
  .faq-q{
    width:100%;text-align:left;background:none;border:0;
    padding:16px 4px;font-size:14px;font-weight:700;
    display:flex;justify-content:space-between;align-items:center;
    cursor:pointer;font-family:var(--font-body);color:var(--ink);
  }
  .faq-q::after{content:'+';font-size:18px;color:var(--vermillion);transition:transform .2s ease;}
  .faq-item.open .faq-q::after{transform:rotate(45deg);}
  .faq-a{
    max-height:0;overflow:hidden;transition:max-height .25s ease;
    font-size:13px;line-height:1.9;color:#54503f;
  }
  .faq-a p{margin:0 4px 16px;}

  /* ============ Store finder ============ */
  .store-links{display:grid;gap:10px;grid-template-columns:1fr;}
  @media(min-width:640px){ .store-links{grid-template-columns:1fr 1fr;} }
  .store-links a.store-link{
    display:flex;justify-content:space-between;align-items:center;
    background:var(--white);border:1px solid var(--line);
    border-radius:var(--radius-s);padding:13px 16px;font-size:13px;
    color:var(--ink) !important;
    text-decoration:none !important;
  }
  .store-link .area{font-size:10.5px;color:var(--vermillion) !important;display:block;margin-bottom:2px;}

  .pdf-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;}
  .pdf-links a.pdf-link{
    font-size:12.5px;
    background-color:var(--white) !important;
    border:1px solid var(--indigo-700) !important;
    color:var(--indigo-700) !important;
    padding:7px 14px;
    border-radius:999px;
    text-decoration:none !important;
  }
  .pdf-links a.pdf-link:visited,
  .pdf-links a.pdf-link:hover,
  .pdf-links a.pdf-link:active{
    color:var(--indigo-700) !important;
  }

  /* ============ 共有リンクからのハイライト演出 ============ */
  @keyframes sharedPulse{
    0%,100%{ box-shadow:0 0 0 0 rgba(200,68,44,0); }
    30%{ box-shadow:0 0 0 6px rgba(200,68,44,.35); }
  }
  .shared-highlight{
    animation:sharedPulse 1.3s ease-in-out 2;
    outline:2px solid var(--vermillion);
    outline-offset:3px;
  }

  /* ============ Footer ============ */
  footer{background:#000000;color:#cfd6e4;padding:36px 0 24px;}
  footer .sns{display:flex;gap:14px;margin:14px 0 20px;}
  footer .sns a{
    width:36px;height:36px;border-radius:50%;
    border:1px solid rgba(255,255,255,.3);
    display:flex;align-items:center;justify-content:center;
  }
  footer .foot-nav{font-size:12px;line-height:2;}
  footer .copyright{font-size:11px;color:#8b93a8;margin-top:20px;}
footer .footer-brand{
  display:block;
}

footer .footer-brand a{
  display:inline-block;
}

footer .footer-brand img{
  width:300px;
  height:auto;
  display:block;
}
