/* デザイン案のスタイルを保持。本文は各HTMLで編集できます。 */
:root{--bg:#F3F4F0;--bg-soft:#E8EBE5;--ink:#1F2B2E;--ink-sub:#56625F;--accent:#24475A;--line:#D5D9D2;--photo:#D9DDD6}
html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);word-break:auto-phrase;line-break:strict;text-wrap:pretty}*{box-sizing:border-box} [hidden]{display:none!important} [id]{scroll-margin-top:72px}a:focus-visible{outline:3px solid var(--accent);outline-offset:5px}img{max-width:100%}svg{flex-shrink:0}picture{display:contents}
.s1{position: sticky; top: 0; z-index: 10; background: var(--bg); border-bottom: 1px solid var(--line)}
.s2{max-width: 1180px; margin: 0 auto; padding: 8px 20px; display: flex; align-items: center; justify-content: space-between; gap: 16px}
.s3{font-family: 'Zen Old Mincho', serif; font-size: 18px; font-weight: 700; color: var(--ink); text-decoration: none; letter-spacing: 0.08em}
.s4{display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; background: var(--accent); color: #FFFFFF; text-decoration: none; font-size: 14px; font-weight: 700; border-radius: 999px}
.s5{border-bottom: 1px solid #E2E5DF}
.s6{max-width: 1180px; margin: 0 auto; padding: 0 8px; display: flex; justify-content: center; gap: 4px; white-space: nowrap}
.s7{display: inline-flex; align-items: center; min-height: 44px; padding: 0 10px; color: var(--ink); text-decoration: none; font-size: 13px}
.s8{position: relative; height: clamp(360px, 46vw, 600px); background: #34403F; overflow: hidden}
.s9{position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 55% 30%}
.s10{position: absolute; inset: 0; background: linear-gradient(to top, rgba(20, 28, 30, 0.62), rgba(20, 28, 30, 0) 62%)}
.s11{position: absolute; left: 0; right: 0; bottom: 0; padding: 0 20px 56px}
.s12{max-width: 1180px; margin: 0 auto}
.s13{margin: 0 0 16px; font-size: 13px; font-weight: 500; letter-spacing: 0.16em; color: #E4E8E3}
.s14{margin: 0; font-family: 'Zen Old Mincho', serif; font-weight: 500; font-size: clamp(24px, 6vw, 58px); line-height: 1.6; color: #FFFFFF; letter-spacing: 0.06em}
.s15{white-space: nowrap}
.s16{padding: 32px 20px 48px; text-align: center; border-bottom: 1px solid var(--line)}
.s17{margin: 0 0 28px; font-family: 'Zen Old Mincho', serif; font-size: 15px; line-height: 2; letter-spacing: 0.05em; color: var(--ink)}
.s18{display: inline-flex; align-items: center; justify-content: center; gap: 12px; width: 100%; max-width: 420px; min-height: 64px; background: var(--accent); color: #FFFFFF; text-decoration: none; font-size: 18px; font-weight: 700; letter-spacing: 0.12em; border-radius: 999px}
.s19{margin: 12px 0 0; font-size: 12px; color: var(--ink-sub)}
.s20{display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-top: 12px; color: var(--accent); font-size: 15px; font-weight: 700}
.s21{margin: 32px auto 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 12px; max-width: 760px}
.s22{padding: 6px 14px; border: 1px solid #C3C9C1; border-radius: 999px; font-size: 13px}
.s23{padding: 88px 20px}
.s24{margin: 0 0 8px; font-family: 'Zen Old Mincho', serif; font-weight: 500; font-size: clamp(26px, 3.4vw, 36px); letter-spacing: 0.1em; text-align: center}
.s25{margin: 0 0 48px; text-align: center; font-size: 14px; color: var(--ink-sub)}
.s26{display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 48px 32px}
.s27{display: flex; flex-direction: column; gap: 16px}
.s28{position: relative; overflow: hidden; aspect-ratio: 4 / 3; background: var(--photo); display: flex; align-items: flex-end; padding: 16px; box-sizing: border-box}
.s29{position: absolute; top: 12px; right: 12px; z-index: 1; display: flex; gap: 8px}
.s30{width: 80px; height: 80px; object-fit: contain}
.s31{width: 80px; height: 80px; object-fit: contain; background: #FFFFFF; border-radius: 8px; padding: 4px; box-sizing: border-box}
.s32{position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%}
.s33{display: flex; flex-direction: column; gap: 2px}
.s34{font-size: 13px; font-weight: 700; letter-spacing: 0.08em; color: var(--accent)}
.s35{margin: 0; font-family: 'Zen Old Mincho', serif; font-weight: 700; font-size: 28px; letter-spacing: 0.12em}
.s36{font-size: 12px; line-height: 1.7; color: var(--ink-sub)}
.s37{display: inline-block}
.s38{margin: 0; font-size: 15px}
.s39{display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; border-top: 1px solid var(--line); padding-top: 14px}
.s40{font-size: 15px}
.s41{font-size: 13px; color: var(--ink-sub)}
.s42{display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--accent); font-weight: 700; font-size: 15px; text-decoration: none}
.s43{position: absolute; top: 12px; right: 12px; z-index: 1; width: 80px; height: 80px; object-fit: contain; border-radius: 50%}
.s44{position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%}
.s45{position: absolute; top: 12px; right: 12px; z-index: 1; width: 80px; height: 80px; object-fit: contain; background: #FFFFFF; border-radius: 8px; padding: 4px; box-sizing: border-box}
.s46{position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 55%}
.s47{font-size: 11px; font-weight: 500; letter-spacing: 0.1em}
.s48{margin: 56px 0 0; text-align: center; font-size: 14px; color: var(--ink-sub)}
.s49{display: inline-flex; align-items: center; min-height: 44px; color: var(--accent); font-weight: 700}
.s50{padding: 88px 20px; border-top: 1px solid var(--line)}
.s51{margin: 0 0 8px; text-align: center; font-size: 12px; letter-spacing: 0.24em; color: var(--ink-sub)}
.s52{display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: 48px 40px}
.s53{display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px 14px}
.s54{margin: 0; font-family: 'Zen Old Mincho', serif; font-weight: 700; font-size: clamp(21px, 5.8vw, 26px); letter-spacing: 0.08em; white-space: nowrap}
.s55{font-size: 12px; padding: 2px 10px; background: var(--ink); color: #FFFFFF; border-radius: 999px}
.s56{margin: 0; font-size: 13px; line-height: 1.8; color: var(--ink-sub)}
.s57{display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; border-top: 1px solid var(--line); padding-top: 16px}
.s58{display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 22px; background: var(--accent); color: #FFFFFF; font-weight: 700; font-size: 15px; text-decoration: none; border-radius: 999px}
.s59{margin: 48px auto 0; max-width: 760px; padding: 24px; border: 1px solid #C3C9C1; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 24px; text-align: center}
.s60{font-weight: 700}
.s61{padding: 88px 20px; background: var(--bg-soft)}
.s62{margin: 0 0 16px; font-family: 'Zen Old Mincho', serif; font-weight: 500; font-size: clamp(26px, 3.4vw, 36px); letter-spacing: 0.1em; text-align: center}
.s63{margin: 0 auto 56px; max-width: 560px; text-align: center; font-size: 15px}
.s64{display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 40px 32px}
.s65{display: flex; flex-direction: column; gap: 14px}
.s66{position: relative; overflow: hidden; aspect-ratio: 1 / 1; background: #D2D7CF; display: flex; align-items: flex-end; padding: 14px; box-sizing: border-box}
.s67{margin: 0; font-family: 'Zen Old Mincho', serif; font-weight: 700; font-size: 20px; letter-spacing: 0.1em}
.s68{position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 45% 55%}
.s69{position: absolute; left: 10px; bottom: 10px; z-index: 1; padding: 2px 10px; background: rgba(20, 28, 30, 0.62); color: #FFFFFF; font-size: 12px; line-height: 1.8; letter-spacing: 0.06em; border-radius: 999px}
.s70{margin-top: 56px; text-align: center}
.s71{display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 32px; border: 1px solid var(--ink); color: var(--ink); text-decoration: none; font-size: 15px; font-weight: 700; letter-spacing: 0.08em; border-radius: 999px}
.s72{padding: 96px 20px; background: var(--ink); color: var(--bg); text-align: center}
.s73{margin: 0 0 32px; font-family: 'Zen Old Mincho', serif; font-weight: 500; font-size: clamp(24px, 3.4vw, 34px); line-height: 1.6; letter-spacing: 0.1em}
.s74{display: inline-flex; align-items: center; justify-content: center; gap: 12px; width: 100%; max-width: 420px; min-height: 64px; background: var(--bg); color: var(--ink); text-decoration: none; font-size: 18px; font-weight: 700; letter-spacing: 0.12em; border-radius: 999px}
.s75{margin: 32px auto 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 24px; font-size: 14px}
.s76{display: inline-flex; align-items: center; min-height: 44px; color: var(--bg)}
.s77{padding: 64px 20px 32px}
.s78{max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 40px 32px}
.s79{margin: 0 0 12px; font-family: 'Zen Old Mincho', serif; font-size: 20px; font-weight: 700; letter-spacing: 0.08em}
.s80{font-style: normal; font-size: 14px; line-height: 1.9}
.s81{display: flex; flex-direction: column; align-items: flex-start; font-size: 14px}
.s82{display: inline-flex; align-items: center; min-height: 40px; color: var(--ink)}
.s83{margin: 0 0 6px; font-size: 15px; font-weight: 700}
.s84{margin: 0 0 16px; font-size: 14px; line-height: 1.8}
.s85{display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 20px; border: 1px solid var(--ink); border-radius: 999px; color: var(--ink); font-size: 14px; font-weight: 700; text-decoration: none}
.s86{max-width: 1180px; margin: 48px auto 0; padding-top: 20px; border-top: 1px solid #E2E5DF; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 24px}
.s87{display: flex; flex-wrap: wrap; gap: 0 16px; font-size: 12px}
.s88{display: inline-flex; align-items: center; gap: 6px; min-height: 44px; color: var(--ink-sub); text-decoration: none}
.s89{margin: 0; font-size: 12px; color: var(--ink-sub)}
.s90{width: 100%; background: var(--bg); color: var(--ink); font-family: 'Zen Kaku Gothic New', sans-serif; font-size: 16px; line-height: 1.9; letter-spacing: 0.04em; word-break: auto-phrase; line-break: strict; text-wrap: pretty}
.s91{display: inline-flex; align-items: center; min-height: 44px; padding: 0 10px; color: var(--ink); text-decoration: underline; text-underline-offset: 6px; font-weight: 700; font-size: 13px}
.s92{position: relative; height: clamp(300px, 38vw, 480px); background: #34403F; overflow: hidden}
.s93{position: absolute; left: 0; right: 0; bottom: 0; padding: 0 20px 48px}
.s94{margin: 0 0 8px; font-size: 12px; letter-spacing: 0.24em; color: #E4E8E3}
.s95{margin: 0; font-family: 'Zen Old Mincho', serif; font-weight: 500; font-size: clamp(34px, 5.4vw, 56px); letter-spacing: 0.12em; color: #FFFFFF}
.s96{padding: 88px 20px 40px}
.s97{margin: 0 auto; max-width: 640px; font-family: 'Zen Old Mincho', serif; font-size: clamp(14px, 3.6vw, 22px); line-height: 2.1; letter-spacing: 0.02em; text-align: center}
.s98{padding: 56px 20px}
.s99{max-width: 1080px; margin: 0 auto; display: flex; flex-wrap: wrap; align-items: center; gap: 32px 64px}
.s100{position: relative; overflow: hidden; flex: 1 1 380px; aspect-ratio: 4 / 3; background: var(--photo); display: flex; align-items: flex-end; padding: 16px; box-sizing: border-box}
.s101{flex: 1 1 380px}
.s102{margin: 0 0 4px; font-family: 'Zen Old Mincho', serif; font-size: 14px; color: var(--ink-sub)}
.s103{margin: 0 0 16px; font-family: 'Zen Old Mincho', serif; font-weight: 500; font-size: clamp(22px, 2.8vw, 30px); letter-spacing: 0.1em}
.s104{margin: 0 0 16px}
.s105{margin: 0}
.s106{max-width: 1080px; margin: 0 auto; display: flex; flex-wrap: wrap-reverse; align-items: center; gap: 32px 64px}
.s107{position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%}
.s108{position: relative; overflow: hidden; flex: 1 1 300px; max-width: 420px; aspect-ratio: 4 / 5; background: #D2D7CF; display: flex; align-items: flex-end; padding: 16px; box-sizing: border-box}
.s109{position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%}
.s110{display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-right: 24px; color: var(--accent); font-weight: 700; font-size: 15px}
.s111{display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--accent); font-weight: 700; font-size: 15px}
.s112{max-width: 1080px; margin: 0 auto}
.s113{margin: 0 0 40px; font-family: 'Zen Old Mincho', serif; font-weight: 500; font-size: clamp(22px, 2.8vw, 30px); letter-spacing: 0.1em; text-align: center}
.s114{display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 0 32px; border-top: 1px solid #C3C9C1}
.s115{padding: 24px 0; border-bottom: 1px solid #C3C9C1}
.s116{margin: 0; font-size: 13px; color: var(--ink-sub)}
.s117{margin: 4px 0 0; font-family: 'Zen Old Mincho', serif; font-size: 20px}
.s118{margin: 20px 0 0; text-align: center; font-size: 13px; color: var(--ink-sub)}
.s119{margin: 56px auto 0; max-width: 360px; text-align: center}
.s120{display: block; width: 100%; height: auto; border: 1px solid #C3C9C1; box-shadow: 0 8px 24px rgba(31, 43, 46, 0.12)}
.s121{margin-top: 14px; font-size: 13px; line-height: 1.7; color: var(--ink-sub)}
.s122{margin: 0 0 32px; font-family: 'Zen Old Mincho', serif; font-weight: 500; font-size: clamp(22px, 3vw, 30px); line-height: 1.7; letter-spacing: 0.1em}
.s123{margin: 20px 0 0}
.s124{display: inline-flex; align-items: center; min-height: 44px; color: var(--bg); font-size: 14px}
.s125{width: 100%; background: var(--bg); color: var(--ink); font-family: 'Zen Kaku Gothic New', sans-serif; font-size: 16px; line-height: 2; letter-spacing: 0.04em; word-break: auto-phrase; line-break: strict; text-wrap: pretty}
.cheese-grid,.story-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gift-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.story-row>div{min-width:0} .soldout{background:var(--line)!important;color:var(--ink-sub)!important;cursor:default}.soldout-note{font-size:13px;color:var(--ink-sub)}
@media(min-width:768px) and (max-width:1023px){.cheese-grid,.story-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gift-grid h3{font-size:clamp(18px,2.35vw,24px)}}
@media(max-width:767px){.cheese-grid,.gift-grid,.story-grid{grid-template-columns:minmax(0,1fr)}.medal{width:64px;height:64px}.brand{font-size:clamp(14px,4.6vw,18px);letter-spacing:.04em}.site-header>div{gap:8px}.site-header a[data-cta]{padding:0 14px;white-space:nowrap}.gift-grid h3{font-size:clamp(17px,5.1vw,26px);letter-spacing:.04em}.story-row{flex-direction:column;flex-wrap:nowrap}.story-row.reverse{flex-direction:column-reverse}.story-row>.story-photo{flex:none;width:100%}.story-row>.story-text{flex:none;width:100%}.story-intro{padding-left:8px;padding-right:8px}.story-intro p{font-size:clamp(12px,3.6vw,22px)}.closing p{font-size:clamp(18px,5.6vw,30px)}.intro p:first-child{font-size:clamp(13px,3.85vw,15px)}.hero h1{letter-spacing:.08em}.home .hero p{font-size:clamp(22px,6vw,58px)} }
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* 小さい画面では意味のまとまりを保ちつつ、長い塊だけ枠内で折り返す。 */
span{max-width:100%}

/* Purchase guidance: keep delivery information next to each purchase button. */
.delivery-info{margin:10px 0 14px;font-size:14px;line-height:1.8;color:var(--ink-sub)}
.delivery-note{margin:24px 0 0;font-size:13px;line-height:1.8;color:var(--ink-sub)}
.starter-set{max-width:760px;margin:36px auto 0;display:grid;grid-template-columns:210px minmax(0,1fr);align-items:center;gap:24px;padding:24px;text-align:left;background:var(--bg-soft);border:1px solid var(--line)}
.starter-set>img{width:100%;height:auto;aspect-ratio:1;object-fit:cover}
.starter-content{min-width:0}
.starter-content .starter-label{margin:0 0 4px;font-size:13px;font-weight:700;color:var(--accent)}
.starter-content h2{margin:0 0 10px;font-family:'Zen Old Mincho',serif;font-weight:500;font-size:21px;line-height:1.6;letter-spacing:.04em}
.starter-content p{margin:0 0 12px;font-size:14px;line-height:1.8}
.starter-content .starter-price{font-size:20px;font-weight:700}
.starter-price span{display:inline-block;font-size:13px;font-weight:400}
.starter-button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 14px;background:var(--accent);color:var(--bg);font-size:14px;font-weight:700;line-height:1.7;text-decoration:none}
@media(max-width:767px){
  nav[aria-label="メインメニュー"]>div{gap:0;padding:0 4px;flex-wrap:wrap}
  nav[aria-label="メインメニュー"] a{padding-left:7px;padding-right:7px;letter-spacing:0;min-height:44px}
  .starter-set{grid-template-columns:minmax(0,1fr);gap:16px;padding:20px}
  .starter-set>img{aspect-ratio:3/2;max-height:240px}
  .starter-content h2{font-size:20px}
}
.delivery-info{flex-basis:100%;margin:0}

/* Set comparison and native, keyboard-accessible purchase FAQ. */
.set-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:28px}
.set-choice{padding:24px;background:var(--bg);border:1px solid var(--line);display:flex;flex-direction:column;min-width:0}
.set-choice .choice-label{font-size:14px;font-weight:700;color:var(--accent);margin:0 0 8px}
.set-choice h3{font-family:'Zen Old Mincho',serif;font-size:22px;line-height:1.6;font-weight:500;margin:0 0 12px}
.set-choice p{font-size:15px;line-height:1.9;margin:0 0 16px}
.set-choice dl{margin:auto 0 8px}.set-choice dl>div{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:8px 0}
.set-choice dt{font-size:14px}.set-choice dd{margin:0;font-weight:700;text-align:right}
.set-choice .choice-small{font-size:13px;color:var(--ink-sub);margin-bottom:12px}
.set-choice>a{display:flex;align-items:center;justify-content:center;min-height:48px;padding:10px 12px;background:var(--accent);color:white;font-size:14px;line-height:1.7;text-decoration:none}
.compare-note{margin:12px 0 32px}.compare-note a,.faq-jump a,.purchase-faq a{color:var(--accent);text-underline-offset:4px}
.set-contents{line-height:2;overflow-wrap:anywhere}.faq-jump{margin:0 0 24px;font-size:14px}
.purchase-faq{padding:56px 20px;background:var(--bg);border-bottom:1px solid var(--line)}.faq-inner{max-width:800px;margin:auto}
.purchase-faq h2{font-family:'Zen Old Mincho',serif;font-weight:500;font-size:clamp(23px,3vw,30px);line-height:1.6;margin:0 0 28px}
.purchase-faq details{border-top:1px solid var(--line)}.purchase-faq details:last-of-type{border-bottom:1px solid var(--line)}
.purchase-faq summary{cursor:pointer;padding:18px 8px;font-size:16px;font-weight:700;line-height:1.8;min-height:56px}
.purchase-faq summary::marker{color:var(--accent)}.purchase-faq summary:focus-visible,.set-choice a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.faq-answer{padding:0 8px 20px;font-size:15px;line-height:1.9}.faq-answer p{margin:0 0 14px}.faq-answer p:last-child{margin-bottom:0}.faq-answer ul{padding-left:24px;margin:0 0 14px}
.faq-source{font-size:13px;line-height:1.9;color:var(--ink-sub);margin:20px 0}.faq-actions{display:flex;flex-wrap:wrap;gap:12px 28px}.faq-actions a{display:inline-flex;align-items:center;min-height:44px;font-size:15px}
@media(max-width:767px){.set-compare{grid-template-columns:minmax(0,1fr);gap:16px}.set-choice{padding:20px}.set-choice h3{font-size:21px}.purchase-faq{padding:40px 20px}.purchase-faq summary{font-size:15px}}

.set-audience{margin:18px 0 8px;color:var(--accent);font-weight:700;font-size:14px;line-height:1.8}.set-amount{font-weight:700;margin:14px 0 6px;font-size:15px}.set-total{flex-basis:100%;margin:0;font-size:22px;font-weight:700;line-height:1.7}.set-total span{display:inline-block;font-size:12px;font-weight:400;margin-left:8px}.set-price-breakdown{font-size:14px;color:var(--ink-sub)}
