:root {
  --wagashi-ink: #183f45;
  --wagashi-berry: #9b4f5d;
  --wagashi-leaf: #829c6d;
  --wagashi-pink: #f1c8c2;
  --wagashi-cream: #f4ead2;
  --wagashi-paper: #fffdf8;
  --wagashi-line: #cbd5ce;
}

.wagashi-atlas,
.wagashi-story { color: var(--wagashi-ink); }
.wagashi-atlas h2,
.wagashi-story h2 { margin: .16em 0; font: 700 clamp(38px, 5.2vw, 72px)/1.03 "Fraunces", "Noto Sans JP", serif; letter-spacing: -.045em; }
html[lang="ja"] .wagashi-atlas h2,
html[lang="ja"] .wagashi-story h2 { line-height: 1.25; letter-spacing: -.03em; }

.wagashi-lead { display: grid; grid-template-columns: minmax(0, .94fr) minmax(480px, 1.06fr); gap: clamp(42px, 8vw, 112px); align-items: center; padding: clamp(34px, 5vw, 72px) 0 clamp(80px, 11vw, 138px); }
.wagashi-lead h2 { max-width: 13ch; }
.wagashi-lead > div > p:not(.eyebrow) { max-width: 680px; color: var(--ink-soft); font-size: clamp(16px, 1.45vw, 20px); line-height: 1.85; }
.wagashi-lead dl { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; margin-top: 30px; }
.wagashi-lead dl div { padding: 18px; border-top: 2px solid var(--wagashi-berry); background: #f8f1e6; }
.wagashi-lead dt { color: var(--wagashi-berry); font: 700 25px/1 "Fraunces", serif; }
.wagashi-lead dd { margin: 7px 0 0; color: var(--ink-soft); font-size: 11px; line-height: 1.5; }
.wagashi-lead figure { margin: 0; }
.wagashi-lead picture { display: block; overflow: hidden; border: 2px solid var(--wagashi-ink); border-radius: 48% 48% 28px 28px; aspect-ratio: 3 / 2; background: var(--wagashi-cream); }
.wagashi-lead img { width: 100%; height: 100%; object-fit: cover; }
.wagashi-lead figcaption { margin: 10px 10px 0; color: var(--ink-soft); font-size: 11px; line-height: 1.55; }

.wagashi-months { margin: 0 calc(50% - 50vw); padding: clamp(66px, 9vw, 110px) max(24px, calc((100vw - 1180px) / 2)); background: var(--wagashi-ink); color: #fff; }
.wagashi-months > header { display: grid; grid-template-columns: .8fr 1.2fr; gap: 32px 80px; align-items: end; margin-bottom: 42px; }
.wagashi-months > header p:last-child { margin: 0; color: #d6e2df; line-height: 1.8; }
.wagashi-months ol { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; margin: 0; padding: 0; list-style: none; }
.wagashi-months li { min-width: 0; }
.wagashi-months a { display: grid; grid-template-columns: 44px 1fr; gap: 12px; min-height: 168px; padding: 20px; border: 1px solid rgba(255,255,255,.32); border-radius: 19px; background: #214b50; color: #fff; text-decoration: none; }
.wagashi-months a:hover { background: #2d5960; }
.wagashi-months time { color: #f2c5c2; font: 700 22px/1 "Fraunces", serif; }
.wagashi-months strong { font: 700 20px/1.15 "Fraunces", "Noto Sans JP", serif; }
.wagashi-months small { grid-column: 2; color: #dce8e5; font-size: 11px; line-height: 1.6; }

.wagashi-how { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(38px, 7vw, 100px); padding: clamp(92px, 12vw, 150px) 0; }
.wagashi-how > div > p:last-child { color: var(--ink-soft); line-height: 1.85; }
.wagashi-how ol { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.wagashi-how li { display: grid; grid-template-columns: 48px 1fr; gap: 16px; padding: 23px; border: 1px solid var(--wagashi-line); border-radius: 20px; background: var(--wagashi-paper); }
.wagashi-how li > span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--wagashi-pink); font-weight: 900; }
.wagashi-how h3 { margin: 1px 0 7px; font: 700 22px/1.15 "Fraunces", "Noto Sans JP", serif; }
.wagashi-how li p { margin: 0; color: var(--ink-soft); font-size: 13px; line-height: 1.7; }

.wagashi-catalog { padding: clamp(58px, 8vw, 104px) 0; border-top: 1px solid var(--wagashi-line); }
.wagashi-catalog > header { max-width: 880px; margin-bottom: 42px; }
.wagashi-catalog > header > p:not(.eyebrow) { color: var(--ink-soft); line-height: 1.8; }
.wagashi-filter { display: flex; flex-wrap: wrap; gap: 8px; margin: 26px 0 14px; }
.wagashi-filter button { min-height: 44px; padding: 10px 16px; border: 1px solid var(--wagashi-ink); border-radius: 999px; background: var(--wagashi-paper); color: var(--wagashi-ink); font: inherit; font-size: 12px; font-weight: 900; cursor: pointer; }
.wagashi-filter button:hover,
.wagashi-filter button[aria-pressed="true"] { background: var(--wagashi-ink); color: #fff; }
.wagashi-catalog > header > strong { color: var(--ink-soft); font-size: 13px; }
.wagashi-group { display: grid; grid-template-columns: minmax(220px, .35fr) minmax(0, 1.65fr); gap: clamp(30px, 6vw, 74px); padding: 60px 0; border-top: 1px solid var(--wagashi-line); scroll-margin-top: 108px; }
.wagashi-group > header { position: sticky; top: 108px; align-self: start; }
.wagashi-group > header > span { display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--wagashi-pink); font-size: 20px; font-weight: 900; }
.wagashi-group h3 { margin: 18px 0 8px; font: 700 clamp(29px, 3.4vw, 48px)/1.08 "Fraunces", "Noto Sans JP", serif; }
.wagashi-group > header p { color: var(--ink-soft); line-height: 1.72; }
.wagashi-group > header small { color: var(--wagashi-berry); font-weight: 900; }
.wagashi-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.wagashi-card { min-width: 0; padding: clamp(22px, 3vw, 30px); border: 1px solid var(--wagashi-line); border-radius: 23px; background: var(--wagashi-paper); scroll-margin-top: 108px; }
.wagashi-card > header { display: grid; grid-template-columns: 42px 1fr; gap: 13px; align-items: center; }
.wagashi-card > header > i { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: #d9e5ce; font-style: normal; font-weight: 900; }
.wagashi-card h4 { margin: 0; font: 700 clamp(23px, 2.4vw, 32px)/1.1 "Fraunces", "Noto Sans JP", serif; }
.wagashi-card header small { display: block; margin-top: 4px; color: var(--ink-soft); font-size: 11px; }
.wagashi-card > p { min-height: 3.4em; color: var(--ink-soft); font-size: 13px; line-height: 1.7; }
.wagashi-card dl { margin: 20px 0 0; }
.wagashi-card dl div { padding: 12px 0; border-top: 1px solid #d9dfda; }
.wagashi-card dt { color: var(--wagashi-berry); font-size: 10px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.wagashi-card dd { margin: 5px 0 0; color: var(--ink-soft); font-size: 12px; line-height: 1.65; }
.wagashi-card__open { display: flex; align-items: center; justify-content: space-between; min-height: 48px; margin-top: 15px; padding: 11px 15px; border-radius: 13px; background: var(--wagashi-ink); color: #fff; font-size: 12px; font-weight: 900; text-decoration: none; }
.wagashi-card__open:hover { background: var(--wagashi-berry); }
.wagashi-card[hidden], .wagashi-group[hidden] { display: none; }

.wagashi-places { margin: 40px calc(50% - 50vw) 0; padding: clamp(72px, 10vw, 118px) max(24px, calc((100vw - 1180px) / 2)); background: #dbe7d4; }
.wagashi-places > header { display: grid; grid-template-columns: .8fr 1.2fr; gap: 28px 78px; align-items: end; margin-bottom: 38px; }
.wagashi-places > header > p { color: var(--ink-soft); line-height: 1.8; }
.wagashi-places > div { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.wagashi-places article { padding: 24px; border-radius: 20px; background: var(--wagashi-paper); }
.wagashi-places article > span { display: grid; place-items: center; width: 50px; height: 50px; border-radius: 50%; background: var(--wagashi-pink); font-weight: 900; }
.wagashi-places h3 { margin: 20px 0 8px; font: 700 22px/1.15 "Fraunces", "Noto Sans JP", serif; }
.wagashi-places article p { margin: 0; color: var(--ink-soft); font-size: 12px; line-height: 1.7; }

.wagashi-safety { display: grid; grid-template-columns: .86fr 1.14fr; gap: clamp(42px, 8vw, 110px); padding: clamp(96px, 13vw, 158px) 0; }
.wagashi-safety > div > p:not(.eyebrow) { color: var(--ink-soft); line-height: 1.85; }
.wagashi-safety > div > aside { margin-top: 25px; padding: 21px; border-left: 5px solid var(--wagashi-berry); background: #f8e3df; }
.wagashi-safety > div > aside p { margin: 8px 0 0; line-height: 1.7; }
.wagashi-phrases article { position: relative; padding: 20px 20px 20px 60px; border-top: 1px solid var(--wagashi-line); }
.wagashi-phrases article > span:first-child { position: absolute; top: 20px; left: 8px; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--wagashi-berry); color: #fff; font-size: 10px; font-weight: 900; }
.wagashi-phrases p { margin: 0; font-weight: 800; line-height: 1.65; }
.wagashi-phrases small { display: block; margin: 7px 0 12px; color: var(--ink-soft); line-height: 1.55; }
.wagashi-phrases button { min-height: 44px; padding: 10px 14px; border: 1px solid var(--wagashi-ink); border-radius: 999px; background: transparent; color: inherit; font: inherit; font-size: 11px; font-weight: 900; cursor: pointer; }

.wagashi-faq { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(42px, 8vw, 110px); padding: clamp(74px, 10vw, 122px) 0; border-top: 1px solid var(--wagashi-line); }
.wagashi-faq details { border-top: 1px solid var(--wagashi-line); }
.wagashi-faq summary { min-height: 62px; padding: 20px 36px 20px 0; cursor: pointer; font-weight: 900; line-height: 1.5; }
.wagashi-faq details p { margin: -3px 0 22px; color: var(--ink-soft); line-height: 1.75; }
.wagashi-sources { display: grid; grid-template-columns: .86fr 1.14fr; gap: 40px 90px; padding: clamp(48px, 7vw, 78px); border-radius: 34px; background: var(--wagashi-ink); color: #fff; }
.wagashi-sources p { color: #d7e4e1; line-height: 1.8; }
.wagashi-sources .wagashi-language-disclosure { padding: 14px; border: 1px solid rgba(255,255,255,.3); border-radius: 14px; color: #fff; font-size: 12px; }
.wagashi-sources ul { margin: 0; padding-left: 20px; }
.wagashi-sources li { margin: 11px 0; }
.wagashi-sources a { color: #fff; }

.food-wagashi-launch { display: grid; grid-template-columns: 1.04fr .96fr; gap: clamp(32px, 6vw, 78px); align-items: center; margin: clamp(68px, 9vw, 118px) 0; padding: clamp(38px, 6vw, 72px); border-radius: 34px; background: #f1ddd6; color: var(--wagashi-ink); }
.food-wagashi-launch h2 { max-width: 15ch; margin: .18em 0; font: 700 clamp(38px, 5vw, 66px)/1.04 "Fraunces", "Noto Sans JP", serif; letter-spacing: -.04em; }
.food-wagashi-launch p:not(.eyebrow) { color: var(--ink-soft); line-height: 1.8; }
.food-wagashi-launch figure { margin: 0; overflow: hidden; border: 1px solid var(--wagashi-ink); border-radius: 50% 50% 24px 24px; aspect-ratio: 3 / 2; }
.food-wagashi-launch img { width: 100%; height: 100%; object-fit: cover; }

.wagashi-story > section, .wagashi-story > aside { margin-top: clamp(56px, 8vw, 104px); }
.wagashi-story-lead { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(38px, 7vw, 94px); align-items: center; }
.wagashi-story-lead > div > span { display: inline-grid; place-items: center; min-width: 70px; min-height: 38px; border: 1px solid var(--wagashi-ink); border-radius: 999px; font: 700 12px/1 "Fraunces", serif; }
.wagashi-story-lead > div > strong,
.wagashi-story-lead > div > small { display: block; }
.wagashi-story-lead > div > strong { margin-top: 17px; font-size: 15px; }
.wagashi-story-lead > div > small { margin-top: 4px; color: var(--ink-soft); font-size: 12px; }
.wagashi-story-lead h2 { max-width: 14ch; font-size: clamp(43px, 6vw, 80px); }
.wagashi-story-lead > div > p:not(.eyebrow) { color: var(--ink-soft); font-size: clamp(16px, 1.35vw, 19px); line-height: 1.85; }
.wagashi-story-lead > div > a { display: inline-flex; min-height: 46px; align-items: center; margin-top: 12px; padding: 10px 16px; border: 1px solid var(--wagashi-ink); border-radius: 999px; color: inherit; font-size: 12px; font-weight: 900; text-decoration: none; }
.wagashi-story-visual { margin: 0; }
.wagashi-story-visual > div { position: relative; overflow: hidden; min-height: 430px; border: 2px solid var(--wagashi-ink); border-radius: 50% 50% 28px 28px; background: linear-gradient(145deg, #f2ddd7, #fff8e9); }
.wagashi-story-visual i { position: absolute; display: block; box-shadow: 0 0 0 2px var(--wagashi-ink); }
.wagashi-story-visual i:nth-child(1) { top: 31%; left: 28%; width: 175px; height: 135px; border-radius: 50%; background: #f7eee1; transform: rotate(-12deg); }
.wagashi-story-visual i:nth-child(2) { top: 40%; right: 21%; width: 130px; height: 105px; border-radius: 42% 58% 48% 52%; background: var(--wagashi-pink); transform: rotate(15deg); }
.wagashi-story-visual i:nth-child(3) { bottom: 20%; left: 39%; width: 120px; height: 58px; border-radius: 999px; background: var(--wagashi-leaf); }
.wagashi-story-visual i:nth-child(4) { top: 15%; left: 50%; width: 4px; height: 82px; background: rgba(24,63,69,.38); box-shadow: 19px 14px 0 rgba(24,63,69,.24), -21px 18px 0 rgba(24,63,69,.22); }
.wagashi-story--regional .wagashi-story-visual > div { background: linear-gradient(145deg, #dce9d3, #fff9e8); }
.wagashi-story--street .wagashi-story-visual > div { background: linear-gradient(145deg, #ead5a2, #fff6e8); }
.wagashi-story-visual figcaption { display: flex; justify-content: space-between; gap: 12px; margin-top: 10px; color: var(--ink-soft); font-size: 11px; }
.wagashi-story-alert { display: grid; grid-template-columns: 50px 1fr; gap: 18px; padding: 23px; border: 2px solid var(--wagashi-berry); border-radius: 20px; background: #f9e5e0; }
.wagashi-story-alert > span { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: var(--wagashi-berry); color: #fff; font-weight: 900; }
.wagashi-story-alert p { margin: 6px 0 0; color: var(--ink-soft); line-height: 1.7; }
.wagashi-story-decision { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.wagashi-story-decision div { padding: 22px; border-top: 3px solid var(--wagashi-berry); background: #f8f1e6; }
.wagashi-story-decision small { display: block; color: var(--wagashi-berry); font-weight: 900; }
.wagashi-story-decision strong { display: block; margin-top: 9px; line-height: 1.65; }
.wagashi-story-scene { display: grid; grid-template-columns: minmax(0, 1.14fr) minmax(280px, .86fr); gap: clamp(34px, 7vw, 92px); align-items: end; padding: clamp(38px, 6vw, 72px); border: 1px solid var(--wagashi-line); border-radius: 32px; background: linear-gradient(135deg, #fffdf8 0 62%, #edf1e6 62%); }
.wagashi-story-scene > div > p:last-child { max-width: 720px; color: var(--ink-soft); font-size: clamp(16px, 1.4vw, 19px); line-height: 1.88; }
.wagashi-story-scene aside { padding: 26px; border-top: 3px solid var(--wagashi-berry); background: rgba(255, 253, 248, .94); }
.wagashi-story-scene aside strong { font: 700 21px/1.2 "Fraunces", "Noto Sans JP", serif; }
.wagashi-story-scene aside p { margin: 12px 0 0; color: var(--ink-soft); line-height: 1.78; }
.wagashi-story-craft,
.wagashi-story-reading,
.wagashi-story-order,
.wagashi-story-faq,
.wagashi-story-sources { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(36px, 7vw, 96px); }
.wagashi-story-craft p,
.wagashi-story-reading p,
.wagashi-story-order p { color: var(--ink-soft); line-height: 1.82; }
.wagashi-story-craft aside { padding: 30px; border-radius: 24px; background: #dce8d4; }
.wagashi-story-craft aside h3 { font: 700 28px/1.15 "Fraunces", "Noto Sans JP", serif; }
.wagashi-story-lineage > header,
.wagashi-story-fieldnotes > header { max-width: 890px; margin-bottom: 30px; }
.wagashi-story-lineage > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.wagashi-story-lineage article { min-width: 0; padding: clamp(26px, 4vw, 42px); border: 1px solid var(--wagashi-line); border-radius: 24px; background: var(--wagashi-paper); }
.wagashi-story-lineage article > span,
.wagashi-story-fieldnotes article > span { color: var(--wagashi-berry); font-size: 10px; font-weight: 900; letter-spacing: .09em; }
.wagashi-story-lineage h3 { margin: 20px 0 11px; font: 700 clamp(24px, 2.7vw, 34px)/1.12 "Fraunces", "Noto Sans JP", serif; }
.wagashi-story-lineage article p { margin: 0; color: var(--ink-soft); line-height: 1.85; }
.wagashi-story-technique { margin-right: calc(50% - 50vw); margin-left: calc(50% - 50vw); padding: clamp(70px, 10vw, 118px) max(24px, calc((100vw - 1180px) / 2)); background: var(--wagashi-ink); color: #fff; }
.wagashi-story-technique > header { max-width: 880px; }
.wagashi-story-technique > header p:last-child { color: #d7e4e1; font-size: clamp(16px, 1.4vw, 19px); line-height: 1.86; }
.wagashi-story-technique ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 34px 0 0; padding: 0; list-style: none; counter-reset: technique-step; }
.wagashi-story-technique li { min-width: 0; padding: 27px; border: 1px solid rgba(255,255,255,.3); border-radius: 20px; background: #214b50; counter-increment: technique-step; }
.wagashi-story-technique li > span { display: inline-grid; place-items: center; width: 38px; height: 38px; margin-bottom: 22px; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; color: #f2c5c2; font: 700 14px/1 "Fraunces", serif; }
.wagashi-story-technique li strong { display: block; font: 700 23px/1.18 "Fraunces", "Noto Sans JP", serif; }
.wagashi-story-technique li p { margin: 11px 0 0; color: #d7e4e1; font-size: 13px; line-height: 1.78; }
.wagashi-story-fieldnotes > header > p:last-child { max-width: 760px; color: var(--ink-soft); line-height: 1.8; }
.wagashi-story-fieldnotes > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.wagashi-story-fieldnotes article { min-width: 0; padding: 26px; border-top: 3px solid var(--wagashi-leaf); background: #f4f0e4; }
.wagashi-story-fieldnotes article h3 { margin: 16px 0 10px; font: 700 22px/1.18 "Fraunces", "Noto Sans JP", serif; }
.wagashi-story-fieldnotes article p { margin: 0; color: var(--ink-soft); font-size: 13px; line-height: 1.78; }
.wagashi-story-notice > header { max-width: 850px; }
.wagashi-story-notice > header > p:last-child { color: var(--ink-soft); line-height: 1.75; }
.wagashi-story-notice > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 11px; }
.wagashi-story-notice article { padding: 25px; border: 1px solid var(--wagashi-line); border-radius: 20px; }
.wagashi-story-notice article > span { color: var(--wagashi-berry); font: 700 12px/1 "Fraunces", serif; }
.wagashi-story-notice h3 { margin: 20px 0 9px; font: 700 23px/1.15 "Fraunces", "Noto Sans JP", serif; }
.wagashi-story-notice article p { color: var(--ink-soft); line-height: 1.75; }
.wagashi-story-reading dl { margin: 0; }
.wagashi-story-reading dl div { padding: 18px 0; border-top: 1px solid var(--wagashi-line); }
.wagashi-story-reading dt { color: var(--wagashi-berry); font-size: 10px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.wagashi-story-reading dd { margin: 6px 0 0; line-height: 1.75; }
.wagashi-story-order { align-items: center; padding: clamp(40px, 6vw, 70px); border-radius: 30px; background: var(--wagashi-cream); }
.wagashi-story-order aside { padding: 24px; border-left: 5px solid var(--wagashi-berry); background: var(--wagashi-paper); }
.wagashi-story-safety { margin-right: calc(50% - 50vw); margin-left: calc(50% - 50vw); padding: clamp(64px, 9vw, 112px) max(24px, calc((100vw - 1180px) / 2)); background: #f7dfda; }
.wagashi-story-safety > header { max-width: 900px; }
.wagashi-story-safety > header p { line-height: 1.85; }
.wagashi-story-safety__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 32px; }
.wagashi-story-safety__grid article { padding: 24px; border: 1px solid var(--wagashi-berry); border-radius: 18px; background: var(--wagashi-paper); }
.wagashi-story-safety__grid span { color: var(--wagashi-berry); font: 700 12px/1 "Fraunces", serif; }
.wagashi-story-safety__grid h3 { margin: 15px 0 8px; font-size: 17px; }
.wagashi-story-safety__grid p { margin: 0; color: var(--ink-soft); line-height: 1.72; }
.wagashi-story-safety > aside { margin-top: 14px; padding: 24px; border-radius: 18px; background: var(--wagashi-ink); color: #fff; }
.wagashi-story-safety > aside p { font-size: 16px; font-weight: 800; line-height: 1.65; }
.wagashi-story-safety > aside small { display: block; color: #d7e4e1; line-height: 1.55; }
.wagashi-story-safety button { min-height: 46px; margin-top: 15px; padding: 10px 16px; border: 1px solid #fff; border-radius: 999px; background: transparent; color: #fff; font: inherit; font-size: 12px; font-weight: 900; cursor: pointer; }
.wagashi-story-compare > div { display: grid; grid-template-columns: repeat(2, 1fr); gap: 11px; }
.wagashi-story-compare a { display: flex; flex-direction: column; min-height: 170px; padding: 24px; border: 1px solid var(--wagashi-line); border-radius: 20px; color: inherit; text-decoration: none; }
.wagashi-story-compare small { color: var(--wagashi-berry); font-weight: 900; }
.wagashi-story-compare strong { margin: 18px 0 7px; font: 700 26px/1.1 "Fraunces", "Noto Sans JP", serif; }
.wagashi-story-compare a span { color: var(--ink-soft); font-size: 12px; line-height: 1.6; }
.wagashi-story-compare a b { margin-top: auto; align-self: flex-end; font-size: 22px; }
.wagashi-story-faq details { border-top: 1px solid var(--wagashi-line); }
.wagashi-story-faq summary { min-height: 62px; padding: 19px 34px 19px 0; cursor: pointer; font-weight: 900; line-height: 1.5; }
.wagashi-story-faq details p { margin: -2px 0 22px; color: var(--ink-soft); line-height: 1.75; }
.wagashi-story-sources { padding: clamp(44px, 6vw, 72px); border-radius: 30px; background: var(--wagashi-ink); color: #fff; }
.wagashi-story-sources p { color: #d7e4e1; line-height: 1.8; }
.wagashi-story-sources ul { margin: 0; padding-left: 20px; }
.wagashi-story-sources li { margin: 11px 0; }
.wagashi-story-sources a { color: #fff; }

.wagashi-atlas a:focus-visible,
.wagashi-atlas button:focus-visible,
.wagashi-atlas summary:focus-visible,
.wagashi-story a:focus-visible,
.wagashi-story button:focus-visible,
.wagashi-story summary:focus-visible,
.food-wagashi-launch a:focus-visible { outline: 3px solid #d49345; outline-offset: 4px; }

@media (max-width: 1060px) {
  .wagashi-months ol { grid-template-columns: repeat(3, 1fr); }
  .wagashi-places > div { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 820px) {
  .wagashi-lead,
  .wagashi-how,
  .wagashi-safety,
  .wagashi-faq,
  .wagashi-sources,
  .food-wagashi-launch,
  .wagashi-story-lead,
  .wagashi-story-craft,
  .wagashi-story-reading,
  .wagashi-story-order,
  .wagashi-story-faq,
  .wagashi-story-sources { grid-template-columns: 1fr; }
  .wagashi-lead figure,
  .food-wagashi-launch figure,
  .wagashi-story-visual { order: -1; }
  .wagashi-months > header,
  .wagashi-places > header { grid-template-columns: 1fr; gap: 10px; }
  .wagashi-group { grid-template-columns: 1fr; }
  .wagashi-group > header { position: static; }
  .wagashi-grid { grid-template-columns: 1fr; }
  .wagashi-story-decision,
  .wagashi-story-scene,
  .wagashi-story-lineage > div,
  .wagashi-story-technique ol,
  .wagashi-story-fieldnotes > div,
  .wagashi-story-notice > div,
  .wagashi-story-safety__grid { grid-template-columns: 1fr; }
  .wagashi-story-scene { background: linear-gradient(160deg, #fffdf8 0 68%, #edf1e6 68%); }
}

@media (max-width: 560px) {
  .wagashi-lead dl,
  .wagashi-months ol,
  .wagashi-places > div,
  .wagashi-story-compare > div { grid-template-columns: 1fr; }
  .wagashi-lead picture { border-radius: 28% 28% 20px 20px; }
  .wagashi-months a { min-height: 0; }
  .wagashi-sources,
  .food-wagashi-launch,
  .wagashi-story-scene,
  .wagashi-story-order,
  .wagashi-story-sources { padding: 36px 21px; border-radius: 24px; }
  .wagashi-story-technique { padding-top: 58px; padding-bottom: 58px; }
  .wagashi-story-technique li,
  .wagashi-story-lineage article,
  .wagashi-story-fieldnotes article { padding: 22px; }
  .wagashi-story-visual > div { min-height: 300px; }
  .wagashi-story-alert { grid-template-columns: 38px 1fr; padding: 18px; }
  .wagashi-story-alert > span { width: 36px; height: 36px; }
}

@media (prefers-reduced-motion: reduce) {
  .wagashi-filter button,
  .wagashi-card__open,
  .wagashi-months a,
  .wagashi-story-compare a { transition: none; }
}

@media (forced-colors: active) {
  .wagashi-months,
  .wagashi-sources,
  .wagashi-story-sources,
  .wagashi-story-scene,
  .wagashi-story-technique,
  .wagashi-story-safety { border: 2px solid CanvasText; }
  .wagashi-card,
  .wagashi-places article,
  .wagashi-story-lineage article,
  .wagashi-story-fieldnotes article,
  .wagashi-story-alert { forced-color-adjust: auto; }
}
