/* V02: readable type, consistent photography, richer activity information. */
html.lenis,html.lenis body{height:auto}
html.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}
:root{--muted:#58675b;--line:#d2d8cd}
body{font-size:16px;line-height:1.9}
.header-inner{height:106px;gap:25px}
.brand{width:145px}
.header-note{display:block;padding-left:23px;border-left:1px solid #9aa98c;color:var(--green);line-height:1.4;white-space:nowrap}
.header-note strong{display:block;font-family:var(--serif);font-size:22px;font-weight:500;letter-spacing:3px}
.header-note small{display:block;margin-top:6px;font:9px/1.3 Arial,sans-serif;letter-spacing:2.1px;color:#6a775e}
.site-header nav{gap:28px}.site-header nav>a{font-size:14px}
.eyebrow{font-size:11px;color:#637352;letter-spacing:1.8px}
.slide-category{font-size:14px}.slide-description{font-size:16px;color:#4f6152;max-width:340px;line-height:1.95}
.slide-event{font-size:13px;color:#4f6152}.button,.text-link{font-size:15px}
.topic-ribbon b{font-size:17px;font-weight:500}.topic-ribbon small{font-size:13px;color:#5f6e5c}
.section-heading .section-lead{font-size:16px;color:var(--muted)}
.events-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 28px}
.event-card figure{aspect-ratio:4/3}.event-card h3{font-size:21px;min-height:68px;line-height:1.6}
.card-meta{font-size:12px;color:#586954;margin-top:17px}.card-meta [data-date-label]{display:inline;color:#3f633e;white-space:nowrap}
.event-card p{font-size:14px;color:#5a685a;display:block}.card-bottom{font-size:13px}.price{font-size:24px}.price small{font-size:12px}
.date-badge small,.photo-note{font-size:11px}.photo-note{background:rgba(25,44,29,.78)}
.section-end{font-size:14px;color:#52644f}.section-end small{font-size:12px}
.empty-state{padding:45px 24px;color:#445c43}.empty-state h3{font-size:22px}.empty-state p{margin:12px 0 24px}
.empty-actions{display:flex;align-items:center;justify-content:center;gap:24px;flex-wrap:wrap}
.experience-section{display:grid;grid-template-columns:1fr 1.1fr;gap:100px;padding-block:92px;border-top:1px solid var(--line)}
.experience-intro h2,.first-visit h2{font-family:var(--serif);font-size:38px;line-height:1.5;letter-spacing:1px;margin:14px 0 24px}
.experience-intro>p:not(.eyebrow){font-size:16px;color:#536450;margin:16px 0;max-width:480px}.experience-intro>.text-link{margin-top:18px}
.experience-steps article{padding:23px 0;border-bottom:1px solid var(--line)}.experience-steps article:first-child{padding-top:0}
.experience-steps article>span{font:12px/1.5 var(--sans);color:#718356;letter-spacing:2px}
.experience-steps h3{font-size:22px;margin:10px 0}.experience-steps p{font-size:15px;color:#576852;max-width:500px}
.moments-section{padding-block:80px}.moments-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;align-items:start}
.moment,.moment:nth-child(2){padding:0}.moment:first-child{grid-column:auto}
.moment figure,.moment:nth-child(2) figure,.moment:nth-child(3) figure,.moment:first-child figure{width:100%;height:auto;aspect-ratio:4/3;overflow:hidden}
.moment figure img{height:100%;transition:transform .65s cubic-bezier(.2,.65,.3,1)}.moment:hover img{transform:scale(1.035)}
.moment>span{font-size:12px;color:#5d7057;margin-top:18px}.moment h3{font-size:22px;line-height:1.6;margin-top:9px;min-height:70px}
.moment-description{font-size:15px;line-height:1.9;color:#52674e;margin-top:10px}
.about-copy h2{font-size:36px}.about-copy>p:not(.eyebrow){font-size:16px;color:#51634f;line-height:2}.photo-caption{font-size:15px}
.first-visit{padding-block:70px 90px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.1fr;gap:100px}
.first-visit>div>p:not(.eyebrow){font-size:15px;color:#53674f}.visit-questions details{border-bottom:1px solid var(--line);padding:21px 0}
.visit-questions summary{cursor:pointer;font-size:18px;padding-right:20px}.visit-questions details p{font-size:15px;color:#52644e;padding:16px 0 4px}
.footer-right p{font-size:16px}.footer-bottom{font-size:12px;gap:20px}.motion-toggle{background:none;border:1px solid #aaba9d;color:inherit;padding:5px 12px;font-size:12px}
.listing-intro>p:not(.eyebrow){font-size:16px}.filters button,.interest-filters button{font-size:14px;min-height:42px}
.detail-label{font-size:14px}.detail-intro h1{font-weight:600}.detail-deck{font-size:17px}.detail-meta small{font-size:13px}.detail-meta b{font-size:16px}.gentle-note{font-size:13px}
.intro-paragraph,.timeline p,.venue-box p,.faq details p{font-size:16px;color:#53634e}.takeaways li{font-size:15px}.menu-list>span{font-size:16px}
.timeline h3,.faq summary{font-size:18px}.caption{font-size:13px;color:#53664f}.booking-card dl{font-size:14px}
.detail-cover figcaption{font-size:12px}.dialog-inner>p{font-size:16px}.dialog-inner small{font-size:13px}.copy-phone{font-size:15px}
.event-expiry{background:#e7ecdd;padding:18px 24px;border-left:3px solid #7d935b;margin-top:20px;font-size:15px}
.motion-enabled .reveal-pending{opacity:0;transform:translateY(22px);transition:opacity .85s ease,transform .85s cubic-bezier(.2,.65,.3,1);transition-delay:var(--reveal-delay,0ms)}
.motion-enabled .reveal-pending.is-visible{opacity:1;transform:none}
.reading-progress{position:fixed;top:0;left:0;height:2px;width:100%;transform:scaleX(0);transform-origin:left;background:#78945c;z-index:100;pointer-events:none}
html:not(.motion-enabled){scroll-behavior:auto}html:not(.motion-enabled) .slide-photo img{transform:none!important;transition:none}html:not(.motion-enabled) .hero-slide{transition:none}
/* Carousel motion stays scoped to the user's decorative-motion preference. */
html.motion-enabled .hero-slide{transition:opacity .85s ease,visibility .85s ease;pointer-events:none}
html.motion-enabled .hero-slide.is-active{pointer-events:auto}
html.motion-enabled .slide-copy>*{opacity:0;transform:translateY(16px);transition:opacity .35s ease,transform .35s ease;transition-delay:0s}
html.motion-enabled .is-active .slide-copy>*{opacity:1;transform:translateY(0);transition-duration:.65s;transition-timing-function:cubic-bezier(.22,1,.36,1);transition-delay:.12s}
html.motion-enabled .is-active .slide-copy h2{transition-delay:.2s}
html.motion-enabled .is-active .slide-description{transition-delay:.28s}
html.motion-enabled .is-active .slide-copy>.button{transition-delay:.36s}
html.motion-enabled .is-active .slide-event{transition-delay:.42s}
html.motion-enabled .slide-photo img{transform:scale(1);transition:none;animation:none}
html.motion-enabled .is-active .slide-photo img{animation:hero-photo-drift 7.8s cubic-bezier(.2,.6,.3,1) both}
@keyframes hero-photo-drift{from{transform:scale(1.045)}to{transform:scale(1)}}
@media(max-width:600px){html.motion-enabled .hero-slide{transition-duration:.65s}html.motion-enabled .slide-copy>*{transform:translateY(10px)}html.motion-enabled .is-active .slide-copy>*{transition-duration:.5s}html.motion-enabled .is-active .slide-photo img{animation-name:hero-photo-drift-mobile}}
@keyframes hero-photo-drift-mobile{from{transform:scale(1.025)}to{transform:scale(1)}}
@media(max-width:1100px){.header-inner{padding-inline:32px;gap:18px}.site-header nav{gap:18px}.site-header nav .nav-cta{gap:12px;padding-inline:13px;margin-left:0}.header-note strong{font-size:19px;letter-spacing:2px}.header-note{padding-left:17px}.brand{width:130px}.experience-section,.first-visit{gap:50px}.moment h3{font-size:20px}}
@media(max-width:850px){.header-note{display:block}.header-note strong{font-size:18px}.header-note small{font-size:8px;letter-spacing:1.1px}.site-header nav{gap:16px}.site-header nav>a{font-size:12px}.site-header nav .nav-cta{display:none}.wrap{width:calc(100% - 64px)}.events-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.experience-section,.first-visit{grid-template-columns:1fr;gap:35px;padding-block:60px}.experience-intro>p:not(.eyebrow){max-width:650px}.moments-grid{gap:20px}.moment h3{font-size:18px}.moment-description{font-size:14px}}
@media(max-width:600px){body{font-size:15px}.wrap{width:calc(100% - 40px)}.header-inner{height:86px;padding-inline:20px;gap:15px}.brand{width:110px}.header-note{padding-left:15px}.header-note strong{font-size:17px;letter-spacing:1px}.header-note small{font-size:7px;letter-spacing:1px;margin-top:5px}.nav-toggle{font-size:13px;gap:10px;padding-left:5px}.site-header nav{top:86px}.site-header nav>a{font-size:15px;padding-block:14px}.site-header nav .nav-cta{display:flex}.hero{height:780px}.hero-slide{grid-template-rows:335px 445px}.slide-copy{padding:26px 24px 84px}.slide-category{font-size:12px}.slide-copy h2{font-size:36px;margin-block:15px}.slide-description{font-size:15px;line-height:1.9;max-width:100%}.slide-copy>.button{font-size:14px;min-height:44px;margin-top:20px}.slide-event{position:static;text-align:left;font-size:12px;max-width:none;line-height:1.5;margin-top:13px}.slider-controls{bottom:20px}.slide-photo figcaption{font-size:10px;line-height:1.6}.topic-ribbon{row-gap:22px;padding-block:26px}.topic-ribbon b{font-size:16px}.topic-ribbon small{font-size:12px;line-height:1.7}.topic-ribbon a,.topic-ribbon a:first-child,.topic-ribbon a:last-child{gap:9px;padding-right:8px}.topic-ribbon svg{width:14px}.topic-no{font-size:11px}.eyebrow{font-size:10px;line-height:1.8;letter-spacing:1.4px}.section{padding-block:52px}.section-heading h2{font-size:29px}.section-heading .text-link{font-size:12px}.filters button,.interest-filters button{font-size:13px;padding:7px 13px;min-height:40px}.events-grid{gap:28px 16px}.event-card figure{aspect-ratio:4/3}.event-card h3{font-size:17px;min-height:82px;line-height:1.6}.card-meta{font-size:11px;display:block;line-height:1.8}.card-meta [data-date-label]{display:block}.event-card p{font-size:13px;line-height:1.8}.card-bottom{font-size:12px}.price{font-size:23px}.price small{font-size:11px}.date-badge b{font-size:19px}.date-badge small{font-size:9px}.photo-note{font-size:9px;line-height:1.5}.section-end,.section-end small{font-size:12px}.experience-intro h2,.first-visit h2{font-size:29px;margin-block:12px 22px}.experience-intro>p:not(.eyebrow){font-size:15px}.experience-steps h3{font-size:20px}.experience-steps p{font-size:15px}.moments-section{padding-block:52px}.moments-section .section-heading .section-lead{font-size:15px;line-height:1.9;margin-top:18px}.moments-grid{grid-template-columns:1fr;gap:35px}.moment h3{font-size:22px;min-height:0}.moment>span{font-size:12px}.moment-description{font-size:15px}.moment:not(:first-child) h3 svg{display:block}.moment figure,.moment:nth-child(2) figure,.moment:nth-child(3) figure,.moment:first-child figure{aspect-ratio:4/3;height:auto}.about-copy h2{font-size:29px}.about-copy>p:not(.eyebrow){font-size:15px}.photo-caption{font-size:13px}.first-visit{padding-block:50px 60px;gap:25px}.first-visit>div>p:not(.eyebrow),.visit-questions details p{font-size:15px}.visit-questions summary{font-size:17px}.footer-right p{font-size:15px}.footer-bottom{font-size:11px;gap:12px}.footer-bottom>span:last-of-type{width:100%}.footer-right .button{font-size:14px}.listing-intro h1{font-size:32px}.listing-intro>p:not(.eyebrow){font-size:15px}.detail-intro h1{font-size:33px}.detail-label{font-size:13px}.detail-deck{font-size:15px}.detail-meta{flex-wrap:wrap;gap:18px 22px}.detail-meta small{font-size:12px}.detail-meta b{font-size:14px}.detail-intro .button{font-size:14px}.gentle-note{font-size:12px}.prose-section h2{font-size:26px}.intro-paragraph,.timeline p,.venue-box p,.faq details p{font-size:15px}.takeaways li{font-size:14px}.menu-list>span{font-size:14px}.timeline h3,.faq summary{font-size:17px}.caption{font-size:12px}.mobile-booking .button{font-size:13px}.mobile-booking small{font-size:11px}.dialog-inner small{font-size:13px}.empty-state h3{font-size:20px}.empty-state p{font-size:15px}.empty-actions{gap:20px}.event-expiry{font-size:14px}}
@media(max-width:374px){.header-inner{gap:10px}.brand{width:100px}.header-note{padding-left:10px}.header-note strong{font-size:16px}.header-note small{font-size:6px}.slide-copy h2{font-size:33px}.slide-copy{padding-inline:20px}.slide-description{font-size:14px}.event-card h3{font-size:16px}.photo-note{font-size:8px}.card-bottom{font-size:11px}}

/* V02: venue links and venue pages. Long addresses wrap instead of widening the page. */
.venue-box .venue-box-name{display:inline-flex;align-items:center;gap:14px;font-size:17px;font-weight:400;color:var(--ink)}
.venue-box .venue-box-name svg{width:17px}
.venue-box p{overflow-wrap:anywhere;word-break:break-word}
.venue-box-actions{display:flex;flex-wrap:wrap;gap:12px 26px;margin:16px 0}
.venue-box-actions .text-link{font-size:14px}
.venue-box .venue-box-tel{font-size:14px;color:var(--ink)}
.booking-venue{display:flex;flex-direction:column;gap:5px}
.booking-venue a{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--ink);border-bottom:1px solid #a4ae98;padding-bottom:3px;align-self:flex-start}
.booking-venue a svg{width:13px;height:13px}
.booking-venue span{font-size:12px;line-height:1.7;color:#5f6e5c;overflow-wrap:anywhere;word-break:break-word}
.venue-hero{padding-block:44px 54px}
.venue-hero h1{font-family:var(--serif);font-size:46px;line-height:1.35;letter-spacing:1px;margin:16px 0 0}
.venue-facts{display:grid;grid-template-columns:1.3fr 1.1fr .8fr;gap:28px;margin-top:34px;align-items:stretch}
.venue-facts>div{background:#f2f3ec;padding:24px 26px}
.venue-facts small{display:block;font:12px/1.5 var(--sans);letter-spacing:1.6px;color:#7a8768;margin-bottom:12px}
.venue-facts p{font-size:16px;line-height:1.85;color:#4d6249;margin:0;overflow-wrap:anywhere;word-break:break-word}
.copy-address{margin-top:20px;background:none;border:1px solid #aaba9d;color:var(--ink);padding:9px 15px;font-size:14px;font-family:inherit;cursor:pointer}
.copy-address:hover{border-color:#6d8257;color:#3f633e}
.venue-facts .copy-status{margin-top:12px;font-size:13px;line-height:1.5;color:#43603f;min-height:20px}
.venue-map .button{margin-top:0}
.venue-map .caption{margin:16px 0 0}
.venue-tel{display:inline-flex;align-items:center;gap:12px;font-size:19px;letter-spacing:.5px;color:var(--ink)}
.venue-events{padding-block:58px 72px}
.detail-meta a{border-bottom:1px solid #a4ae98}
.detail-hero-price{display:none}
/* 宽屏首屏保持既有图文比例；场地入口仅生成一次。 */
@media(min-width:1000px){
 .detail-hero--invitation{grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:clamp(36px,4vw,70px);align-items:start;padding-top:30px;padding-bottom:38px}
 .detail-hero--invitation .detail-intro{min-width:0}
 .detail-hero--invitation .detail-intro>.eyebrow{margin-bottom:18px}
 .detail-hero--invitation h1{font-size:clamp(34px,3vw,46px);line-height:1.4;margin-top:13px;margin-bottom:20px}
 .detail-hero--invitation .detail-deck{max-width:29em;line-height:1.85}
 .detail-hero--invitation .detail-meta{gap:16px 24px;margin:24px 0 20px}
 .detail-hero--invitation .detail-meta a{border-bottom:1px solid #a4ae98}
 .detail-hero--invitation .detail-cover{margin:0;height:auto;aspect-ratio:6/5;align-self:start}
 .detail-hero--invitation .detail-cover img{display:block;width:100%;height:100%;object-fit:cover}
 .detail-hero-price{display:flex;align-items:baseline;gap:6px;margin:0 0 18px;color:var(--green)}
 .detail-hero-price strong{font:30px/1.2 var(--serif);font-weight:400}
 .detail-hero-price>span{font-size:13px}
 .detail-hero-price .detail-hero-capacity{margin-left:12px;padding-left:17px;border-left:1px solid var(--line);color:var(--muted)}
}
.venue-events .empty-state{border:1px solid var(--line)}
.menu-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.menu-gallery figure{margin:0;background:#f2f3ec;min-width:0}
.menu-gallery img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.menu-gallery figcaption{display:flex;align-items:baseline;gap:10px;padding:12px 14px;font-size:15px;color:var(--ink)}
.menu-gallery figcaption small{font:12px Georgia,serif;color:#899575;flex:0 0 auto}
.menu-photo-note{font-size:13px;color:#7e8872;line-height:1.8;margin:14px 0 0}
@media(max-width:1100px){.venue-facts{grid-template-columns:1fr 1fr}.venue-facts>div:last-child{grid-column:1/-1}}
@media(max-width:850px){.venue-hero h1{font-size:38px}}
@media(max-width:600px){
.menu-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.menu-gallery figcaption{padding:10px;font-size:13px;gap:7px}
.menu-gallery figcaption small{font-size:10px}
.menu-photo-note{font-size:12px}
.venue-box .venue-box-name{font-size:16px;gap:10px}
.venue-box-actions{gap:12px 18px}
.venue-box-actions .text-link,.venue-box .venue-box-tel{font-size:13px}
.booking-venue a{font-size:13px}
.venue-hero{padding-block:28px 40px}
.venue-hero h1{font-size:30px;margin-top:12px}
.venue-facts{grid-template-columns:1fr;gap:14px;margin-top:24px}
.venue-facts>div{padding:20px}
.venue-facts>div:last-child{grid-column:auto}
.venue-tel{font-size:17px;gap:10px}
.copy-address{font-size:13px;padding:8px 14px;width:100%;max-width:220px}
.venue-events{padding-block:38px 50px}
}

/* ==========================================================================
   WEB-OCT-01：内容照片轻微悬停放大（1 → 1.04）
   仅在 <html class="motion-enabled"> 且精确鼠标（hover:hover + pointer:fine）时生效。
   排除：首页轮播 .slide-photo（已有 hero-photo-drift）、.about-photo（装饰底框偏移）、
        logo / 二维码 / 地图 / 图标 / 字海报（不做全局 img:hover）。
   ========================================================================== */

/* 结构：detail-gallery figure 补照片框裁切（其余容器已有 overflow:hidden） */
.detail-gallery figure { overflow: hidden; }

/* 关闭动效 / 系统减少动态：禁用 style.css 中无条件的旧缩放 */
html:not(.motion-enabled) .event-card a:hover img,
html:not(.motion-enabled) .moment:hover img {
  transform: none;
  transition: none;
}

/* 触屏 / 无精确悬停：压掉 style.css 里同样无条件的旧缩放，避免 sticky hover 残留
   （QA 发现：新块只门控了新增的 1.04，旧规则仍需在粗指针下禁用） */
@media (hover: none), (pointer: coarse) {
  html.motion-enabled .event-card a:hover img,
  html.motion-enabled .moment:hover img {
    transform: none;
  }
}

/* 精确鼠标 + 站内动效开启：统一轻微放大 */
@media (hover: hover) and (pointer: fine) {
  html.motion-enabled .event-card figure img,
  html.motion-enabled .detail-cover img,
  html.motion-enabled .detail-gallery figure img,
  html.motion-enabled .dish-card > img {
    transition: transform .7s cubic-bezier(.2,.65,.3,1);
  }
  html.motion-enabled .event-card a:hover img,
  html.motion-enabled .event-card a:focus-visible img,
  html.motion-enabled .detail-cover:hover img,
  html.motion-enabled .detail-gallery figure:hover img,
  html.motion-enabled .dish-card:hover > img {
    transform: scale(1.04);
  }
  /* moment 保留既有 1.035，仅补键盘 focus-visible（过渡沿用 refinements 既有 .65s） */
  html.motion-enabled .moment:hover img,
  html.motion-enabled .moment:focus-visible img {
    transform: scale(1.035);
  }
}

/* about-photo（首页「认识学堂」）：外侧 :before 装饰框向外偏移，
   不能在 .about-photo 上加 overflow:hidden，否则会裁掉装饰。
   故新增**内层照片框**负责裁切与轻微放大，外层装饰保持原样。 */
.about-photo-frame {
  display: block;
  height: 100%;
  overflow: hidden;
}
@media (hover: hover) and (pointer: fine) {
  html.motion-enabled .about-photo-frame img {
    transition: transform .7s cubic-bezier(.2,.65,.3,1);
  }
  html.motion-enabled .about-photo:hover .about-photo-frame img {
    transform: scale(1.04);
  }
}

/* ==========================================================================
   WEB-OCT-01：无配图菜单 → 「序号 + 菜名 + 档案特色说明」
   说明文字逐字取自正式档案（32期「四道料理·特点」、36期成品说明、37/38期「菜品介绍」）；
   有配图的期次（39期）仍走 .dish-menu / dish-note.css 的滑动面板，不受本块影响。
   ========================================================================== */
.menu-list--notes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.menu-list--notes > span {
  display: block;
  background: #eceee3;
  padding: 16px 18px;
}
.menu-list--notes small {
  display: block;
  margin: 0 0 7px;
}
.menu-list--notes b {
  display: block;
  font-family: var(--serif, serif);
  font-weight: 400;
  font-size: 17px;
  line-height: 1.5;
  color: var(--ink, #263c30);
}
.menu-list--notes em {
  display: block;
  font-style: normal;
  font-size: 14px;
  line-height: 1.9;
  color: #5a685a;
  margin-top: 7px;
}
@media (max-width: 600px) {
  .menu-list--notes { grid-template-columns: 1fr; gap: 10px; }
  .menu-list--notes b { font-size: 16px; }
}
