/* Zen — épure japonaise (compact mobile) */
.tpl-zen { --radius: 2px; --radius-sm: 2px; --line: color-mix(in srgb, var(--text) 14%, transparent); }
.zn-head { position: relative; display: grid; grid-template-columns: auto 1fr; gap: 1.1rem; align-items: center; padding: calc(2.3rem + env(safe-area-inset-top)) 1.3rem 1.2rem; }
.zn-vert { position: absolute; top: calc(1.2rem + env(safe-area-inset-top)); right: 1rem; writing-mode: vertical-rl; font-size: .58rem; letter-spacing: .5em; text-transform: uppercase; color: var(--muted); }
.zn-sun { grid-row: span 3; width: 88px; height: 88px; border-radius: 50%; overflow: hidden; display: grid; place-items: center; background: var(--accent); color: #fff; font-family: var(--display); font-weight: 800; font-size: 1.8rem; box-shadow: 0 0 0 9px color-mix(in srgb, var(--accent) 9%, transparent); animation: znRise 1.4s var(--ease) both; }
@keyframes znRise { from { transform: translateY(30px); opacity: 0; } }
.zn-sun img { width: 100%; height: 100%; object-fit: cover; }
.zn-name { align-self: end; font-family: var(--display); font-weight: 700; font-size: clamp(1.75rem, 8vw, 2.2rem); letter-spacing: .1em; line-height: 1.05; overflow-wrap: anywhere; animation: fadeIn 1.4s ease both .3s; }
.zn-tag { color: var(--muted); font-size: .8rem; letter-spacing: .04em; line-height: 1.4; }
.zn-point { display: flex; align-items: center; gap: .55rem; font-size: .66rem; letter-spacing: .3em; text-transform: uppercase; align-self: start; }
.zn-point span { width: 20px; height: 1px; background: var(--accent); }
.zn-point span:last-child { display: none; }
.zn-band { margin: 0 1.3rem; height: 112px; overflow: hidden; }
.zn-band img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.85); animation: znPan 20s ease-in-out infinite alternate; }
@keyframes znPan { from { transform: scale(1.15) translateX(-4%); } to { transform: scale(1.15) translateX(4%); } }
.zn-welcome { padding: 1.1rem 1.6rem .2rem; text-align: center; font-family: var(--display); font-size: .94rem; line-height: 1.6; color: color-mix(in srgb, var(--text) 78%, transparent); }
.zn-list { margin: .8rem 1.3rem 0; border-top: 1px solid var(--text); }
.zn-item { display: flex; align-items: center; gap: .95rem; min-height: 62px; padding: .8rem 0; border-bottom: 1px solid var(--line); transition: padding .4s var(--ease); }
.zn-item:active { padding-left: .5rem; }
.zn-num { font-family: var(--display); font-size: .8rem; color: var(--accent); font-weight: 700; width: 1.4rem; flex-shrink: 0; }
.zn-txt { flex: 1; min-width: 0; }
.zn-txt b { display: block; font-family: var(--display); font-weight: 700; font-size: 1.04rem; letter-spacing: .04em; }
.zn-txt small { display: block; margin-top: .05rem; font-size: .72rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.zn-ico { width: 19px; height: 19px; stroke-width: 1.4; color: var(--muted); flex-shrink: 0; }
.zn-feat { margin: 2rem 1.3rem 0; }
.zn-feat h2 { font-family: var(--display); font-size: .72rem; letter-spacing: .4em; text-transform: uppercase; text-align: center; margin-bottom: 1rem; }
.zn-duo { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.zn-dish img { width: 100%; aspect-ratio: 1; object-fit: cover; margin-bottom: .5rem; }
.zn-dish b { display: block; font-family: var(--display); font-size: .92rem; line-height: 1.25; }
.zn-dish small { color: var(--accent); font-weight: 700; font-size: .78rem; }
.tpl-zen .sheet { border-radius: 0; }
.tpl-zen .sheet-title, .tpl-zen .menu-sec-title, .tpl-zen .sheet-head h2 { letter-spacing: .08em; }
.tpl-zen .dish { background: transparent; border: 0; border-bottom: 1px solid var(--line); padding: .9rem 0; }
.tpl-zen .menu-cat { border-radius: 0; border-width: 0 0 2px; background: transparent; }
.tpl-zen .menu-cat.is-active { background: transparent; color: var(--accent); border-color: var(--accent); }
.tpl-zen .cs-btn:not(.cs-btn-ghost):not(.cs-btn-google) { letter-spacing: .15em; font-weight: 500; box-shadow: none; }
.tpl-zen .cs-dock { border-radius: 0; border: 1px solid var(--text); box-shadow: 0 14px 30px -18px rgba(0,0,0,.4); background: rgba(246,243,236,.94); }
.tpl-zen .cs-dock a { border-radius: 0; letter-spacing: .1em; font-weight: 500; }
