/* 2026-11-08 モバイル実測の改善。PCの既存デザインは維持する。 */
.mobile-site-menu { display:none; }
@media screen and (max-width:980px) {
  html { scroll-padding-top:88px; }
  .global-nav, .wedding-page .global-nav, .kamidana-page .global-nav { position:fixed; inset:0 0 auto; z-index:50; height:72px; min-height:72px; overflow:visible; display:flex; align-items:center; justify-content:space-between; padding:0 12px; border-top:0; border-bottom:1px solid #e4ded4; background:#fffdf9; }
  .global-nav>.brand { height:72px; min-height:72px; max-width:calc(100% - 150px); flex:1; padding:8px 0; gap:8px; background:transparent; overflow:visible; }
  .global-nav .brand-logo { width:28px!important; height:28px!important; max-width:28px!important; max-height:28px!important; }
  .global-nav .brand strong { font-size:18px; line-height:1.5; white-space:nowrap; }
  .global-nav .brand small { font-size:10px; line-height:1.5; }
  .global-nav>.nav-list { display:none; }
  .mobile-site-menu { display:block; flex:0 0 76px; font-family:"Hiragino Sans",sans-serif; }
  .mobile-site-menu summary { display:flex; align-items:center; justify-content:center; gap:3px; min-height:44px; cursor:pointer; font-size:13px; color:#742318; border:1px solid #dccfc3; border-radius:5px; list-style:none; background:#fff; }
  .mobile-site-menu summary::-webkit-details-marker { display:none; }
  .mobile-site-menu[open] summary { background:#f5ebe4; }
  .mobile-site-links { position:absolute; top:72px; left:0; right:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:16px; max-height:calc(100dvh - 84px); overflow-y:auto; overscroll-behavior:contain; background:#fffdf9; box-shadow:0 12px 18px #29231f21; border-bottom:1px solid #ded3c8; }
  .mobile-site-links a { display:flex; align-items:center; min-height:48px; padding:12px; font-size:14px; line-height:1.6; color:#352a24; background:#f5f0e8; border-radius:4px; white-space:normal; overflow-wrap:anywhere; }
  .mobile-site-links .tel { grid-column:1 / -1; justify-content:center; color:white; background:#a73526; font-size:17px; }
  .mobile-site-menu summary:focus-visible,.mobile-site-links a:focus-visible { outline:3px solid #a73526; outline-offset:3px; }
  .global-nav.sub-nav+main { padding-top:72px; }
  .global-nav.sub-nav~main { scroll-margin-top:88px; }
  .section[id],.wedding-page section[id],.kamidana-page section[id] { scroll-margin-top:88px; }
  .translate-widget { top:14px; left:auto; right:96px; z-index:51; }
  .translate-trigger { min-width:64px; min-height:44px; max-width:70px; padding:8px; font-size:12px; line-height:1.4; color:#742318; background:#fffdf9; border:1px solid #dccfc3; border-radius:5px; box-shadow:none; }
  .translate-trigger:hover,.translate-trigger[aria-expanded="true"] { background:#742318; color:white; }
  .translate-panel { top:51px; left:auto; right:0; gap:6px; width:220px; border-radius:8px; padding:10px; }
  .translate-panel.is-open { display:grid; grid-template-columns:repeat(4,1fr); }
  .translate-panel a { width:44px; height:44px; font-size:23px; }
  .footer a[href^="tel:"] { display:inline-flex; align-items:center; min-height:44px; }
  .events-phone { display:inline-flex; align-items:center; min-height:44px; }
}
@media screen and (max-width:700px) {
  /* お守り一覧：本文と写真操作を、拡大せず読める・押せる大きさへ。 */
  .omamori-page header { flex-wrap:wrap; gap:12px; padding-block:16px; }
  .omamori-page header .brand { font-size:17px; letter-spacing:.08em; }
  .omamori-page header nav { width:100%; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
  .omamori-page header nav a,.omamori-page header nav a:last-child { display:flex; justify-content:center; align-items:center; min-height:44px; padding:8px; font-size:13px; border:1px solid #d4c9b7; border-radius:4px; }
  .omamori-page h1 { font-size:clamp(28px,7.8vw,34px); letter-spacing:.04em; line-height:1.7; margin:18px 0; }
  .omamori-page .lead { font-size:16px; line-height:2; }
  .omamori-page .hero-art img { height:280px; }
  .omamori-page .section-heading>p,.omamori-page .product p,.omamori-page .guide p { font-size:15px; line-height:1.95; }
  .omamori-page .filters button { min-height:44px; font-size:13px; padding:10px 13px; }
  .omamori-page .product-photo { height:230px; }
  .omamori-page .photo-actions { align-items:flex-start; flex-wrap:wrap; margin:8px 0 16px; }
  .omamori-page .photo-actions button { min-height:44px; padding:8px 5px; font-size:13px; }
  .omamori-page .photo-actions span { font-size:11px; }
  .omamori-page .product h3 { font-size:18px; line-height:1.65; }
  .omamori-page .price { font-size:15px; line-height:1.8; }
  .omamori-page .close { min-width:72px; min-height:44px; font-size:16px; }
  .omamori-page .swap { min-height:44px; font-size:16px; }
  .omamori-page:has(dialog[open]) { overflow:hidden; }
  .omamori-page footer a { display:inline-flex; min-height:44px; align-items:center; font-size:13px; }
  /* 御朱印：既存の写真と名称・料金を保ち、リンクと説明を読みやすく。 */
  .goshuin-page .header { gap:10px; }
  .goshuin-page .back { display:inline-flex; align-items:center; min-height:44px; font-size:13px; }
  .goshuin-page .intro { padding:45px 20px; }
  .goshuin-page .collection { padding-block:48px; }
  .goshuin-page .gallery figcaption p,.goshuin-page .guide>p:not(.eyebrow) { font-size:16px; line-height:1.95; }
  .goshuin-page .jump,.goshuin-page footer a { display:inline-flex; align-items:center; min-height:44px; font-size:14px; }
  .goshuin-page footer { flex-wrap:wrap; gap:12px; }
  /* 読みもの：目次、ナビ、記事説明の小さい文字と狭い操作範囲を改善。 */
  .site-header nav { gap:10px; justify-content:space-between; font-size:14px; }
  .site-header nav>a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:8px 4px; font-size:14px; }
  .site-header .nav-cta { padding:8px 12px; font-size:12px; }
  .breadcrumb { align-items:center; gap:10px; font-size:12px; }
  .breadcrumb a { display:inline-flex; align-items:center; min-height:44px; }
  .article-hero .article-deck,.article-hero>p,.article-body { font-size:16px; line-height:2; }
  .article-toc { font-size:15px; }
  .article-toc li { padding:2px 0; }
  .article-toc a { display:flex; align-items:center; min-height:44px; padding:8px 0; line-height:1.8; }
  .article-bottom a,.sources summary { display:flex; align-items:center; min-height:44px; font-size:14px; }
  .sources p,.sources li { font-size:14px; line-height:1.9; }
  .card-copy p,.cta-block>p,.footer-inner p { font-size:15px; line-height:1.95; }
  .cta-block .cta-note { font-size:13px; line-height:1.95; }
  .footer-inner a,.text-link { min-height:44px; display:flex; align-items:center; font-size:14px; }
  .story-filters button { min-height:44px; padding:10px 14px; font-size:14px; }
  .article-meta { font-size:12px; flex-wrap:wrap; }
  .article-hero .persona-label { font-size:13px; }
}
@media screen and (max-width:359px) {
  .global-nav .brand strong { font-size:16px; }
  .global-nav>.brand { gap:6px; }
  .global-nav .brand-logo { width:24px!important; height:24px!important; }
  .omamori-page #grid { gap:28px 12px; }
  .omamori-page .product-photo { height:190px; }
  .omamori-page .photo-actions button { font-size:12px; }
  .goshuin-page .brand { gap:7px; font-size:14px; }
  .goshuin-page .back { font-size:12px; }
  .site-header nav>a { font-size:12px; }
  .site-header .nav-cta { padding-inline:7px; font-size:11px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto!important; } }
@media screen and (max-width:980px) {
  .section[id],.wedding-page section[id],.kamidana-page section[id] { scroll-margin-top:0; }
}
@media screen and (max-width:700px) {
  .shichigosan-page h1,.shichigosan-page h2 { word-break:normal; overflow-wrap:anywhere; }
  .shichigosan-page .wedding-hero-copy h1 { font-size:clamp(27px,7.4vw,34px); line-height:1.6; }
  .shichigosan-page .section-inner>h2 { font-size:28px; line-height:1.6; }
  .site-header nav { display:grid; grid-template-columns:auto auto minmax(0,1fr); width:100%; }
  .site-header .nav-cta { min-width:0; white-space:normal; text-align:center; }
  .site-header .nav-cta span { margin-left:6px; }
  .article-hero .article-description { font-size:16px; line-height:2; }
}
