:root{
  --bg:#ffffff; --cream:#f7f4ef; --cream2:#efe9e1;
  --ink:#211c17; --sub:#4a433b; --muted:#7c7266; --line:#e8e2d9;
  --accent:#a98c6d; --dark:#2b2622;
  --serif:"Shippori Mincho",serif; --latin:"Cormorant Garamond",serif; --sans:"Noto Sans JP",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;background:#ffffff;}
#page-bg{position:fixed;inset:0;z-index:-1;background-size:cover;background-position:center;opacity:.07;display:none;pointer-events:none;}
body{font-family:var(--sans);color:var(--ink);background:transparent;line-height:1.9;font-weight:400;
  font-size:15px;-webkit-font-smoothing:antialiased;letter-spacing:.02em;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px;}

/* ラベル・見出し */
.eyebrow{font-family:var(--latin);font-size:14px;letter-spacing:.32em;color:var(--accent);text-transform:uppercase;font-weight:500;}
.h-jp{font-family:var(--serif);font-weight:500;letter-spacing:.08em;}
.section{padding:110px 0;}
.section-head{text-align:center;margin-bottom:56px;}
.section-head .eyebrow{display:block;margin-bottom:14px;}
.section-head h2{font-family:var(--serif);font-size:28px;font-weight:500;letter-spacing:.1em;}
.sec-lead{text-align:center;color:var(--sub);font-size:14.5px;max-width:640px;margin:0 auto 30px;line-height:2;}
.sec-cta{text-align:center;}
.sec-cta a{display:inline-block;background:var(--accent);border:1px solid var(--accent);color:#fff;padding:14px 40px;font-size:12.5px;letter-spacing:.2em;border-radius:1px;transition:.2s;font-family:inherit;}
.sec-cta a:hover{opacity:.88;}

/* ===== 詳細ページ（現行サイトの #cdetail デザインを静的ページへ移植） ===== */
.cd-page{background:#fff;}
.cd-hero{position:relative;height:42vh;min-height:240px;max-height:460px;background:var(--cream2) center/cover no-repeat;display:flex;align-items:center;}
.cd-hero.no-cover{background:linear-gradient(135deg,var(--cream),#efe7dd);}
.cd-hero-overlay{position:absolute;inset:0;background:linear-gradient(rgba(0,0,0,.10),rgba(0,0,0,.34));}
.cd-hero.no-cover .cd-hero-overlay{display:none;}
.cd-hero-inner{position:relative;width:100%;padding:0 8vw;}
.cd-hero-date{display:block;color:#fff;font-family:var(--latin);font-size:14px;letter-spacing:.16em;margin-bottom:8px;text-shadow:0 2px 12px rgba(0,0,0,.3);}
.cd-hero-title{color:#fff;font-family:var(--serif);font-size:clamp(24px,4.2vw,40px);letter-spacing:.08em;margin:0;padding:0;font-weight:500;text-shadow:0 2px 12px rgba(0,0,0,.3);}
.cd-hero.no-cover .cd-hero-title,.cd-hero.no-cover .cd-hero-date{color:var(--ink);text-shadow:none;}
.cd-crumb{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.94);backdrop-filter:blur(4px);border-bottom:1px solid var(--line);padding:11px 18px;font-size:12.5px;color:var(--muted);letter-spacing:.08em;}
.cd-home{border:none;background:none;font-size:17px;line-height:1;cursor:pointer;padding:2px 4px;text-decoration:none;}
.cd-home:hover{opacity:.65;}
.cd-crumb-path{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cd-cl{color:var(--ink);border-bottom:1px solid transparent;}
.cd-cl:hover{color:var(--accent);border-bottom-color:var(--accent);}
.cd-textband{background:#fff;}
.cd-textinner{max-width:720px;margin:0 auto;padding:46px 24px 30px;text-align:center;}
.cd-price{font-family:var(--serif);font-size:17px;color:var(--accent);letter-spacing:.06em;margin:0 0 18px;padding-bottom:16px;border-bottom:1px solid var(--line);font-weight:500;}
.cd-body{color:var(--sub);font-size:15px;line-height:2.15;white-space:pre-wrap;}
.cd-links{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:26px;}
.cd-linkbtn{display:inline-flex;align-items:center;gap:9px;padding:12px 26px;border:1px solid var(--accent);border-radius:2px;background:var(--accent);color:#fff;text-decoration:none;font-size:13px;letter-spacing:.14em;transition:.2s;}
.cd-linkbtn:hover{opacity:.88;}
.cd-linkbtn .lk-ico{width:20px;height:20px;flex:0 0 auto;display:block;}
.cd-sliderwrap{position:relative;max-width:1000px;margin:8px auto 0;padding:0 12px 24px;}
.cd-slider{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:20px 4px;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.cd-slider::-webkit-scrollbar{display:none;}
.cd-slide{flex:0 0 auto;width:min(360px,74vw);scroll-snap-align:center;}
.cd-slide img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;border-radius:2px;background:var(--cream2);box-shadow:0 6px 22px rgba(0,0,0,.10);}
.cd-backwrap{text-align:center;padding:12px 20px 72px;}
.cd-backbtn{display:inline-block;background:var(--accent);border:1px solid var(--accent);color:#fff;padding:14px 44px;font-size:13px;letter-spacing:.18em;border-radius:1px;transition:.2s;text-decoration:none;}
.cd-backbtn:hover{opacity:.88;}
@keyframes cdIn{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}
.cd-page .cd-hero,.cd-page .cd-slide{animation:cdIn 1.2s cubic-bezier(.2,.6,.2,1) both;}
.cd-page .cd-slide:nth-child(2){animation-delay:.1s;}
.cd-page .cd-slide:nth-child(3){animation-delay:.2s;}
.cd-page .cd-slide:nth-child(n+4){animation-delay:.3s;}
@media (prefers-reduced-motion: reduce){ .cd-page .cd-hero,.cd-page .cd-slide{animation:none;} }
@media(max-width:560px){.cd-textinner{padding:34px 20px 20px;}.cd-slide{width:82vw;}}
.gal-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 10px;margin:0 auto 30px;max-width:820px;}
.gal-fbtn{background:none;border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:7px 18px;font:inherit;font-size:12.5px;letter-spacing:.06em;cursor:pointer;transition:.2s;}
.gal-fbtn:hover{border-color:var(--accent);color:var(--accent);}
.gal-fbtn.on{background:var(--accent);border-color:var(--accent);color:#fff;}
#reviews .review-grid{max-width:980px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:22px;}
#reviews .review-card{background:#fff;border:1px solid var(--line);border-radius:4px;padding:26px 24px;text-align:left;box-shadow:0 2px 12px rgba(60,50,40,.04);}
#reviews .review-card blockquote{margin:0;font-size:14.5px;line-height:2;color:var(--ink);}
#reviews .review-card blockquote::before{content:'\201C';font-family:var(--serif);font-size:34px;color:var(--accent);line-height:0;vertical-align:-10px;margin-right:5px;}
#reviews .review-card figcaption{margin-top:16px;font-size:12.5px;color:var(--muted);letter-spacing:.06em;text-align:right;}
#insta-feed .insta-head{text-align:center;font-family:var(--serif);font-size:21px;letter-spacing:.08em;color:var(--ink);margin-bottom:30px;}
#insta-feed .insta-grid{max-width:760px;margin:0 auto;display:grid;grid-template-columns:repeat(5,1fr);gap:8px;}
#insta-feed .insta-cell{position:relative;display:block;aspect-ratio:1/1;overflow:hidden;border-radius:5px;background:var(--cream2);}
#insta-feed .insta-cell img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease;}
#insta-feed a.insta-cell:hover img{transform:scale(1.06);}
#insta-feed .insta-ic{position:absolute;top:5px;right:5px;width:16px;height:16px;opacity:.92;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35));pointer-events:none;}
#insta-feed .insta-ic svg{width:100%;height:100%;}
@media(max-width:600px){ #insta-feed .insta-grid{gap:5px;} #insta-feed .insta-ic{width:13px;height:13px;top:4px;right:4px;} }
/* スクロールで項目・画像がふわっと現れる（動きのある表示） */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.6,.2,1),transform .8s cubic-bezier(.2,.6,.2,1);}
.reveal.in{opacity:1;transform:none;}
/* タイトル（セクション見出し・Aboutの見出し）は動きを大きめに */
.section-head.reveal,#about h2.reveal{transform:translateY(56px);transition-duration:1s;}
.section-head.reveal.in,#about h2.reveal.in{transform:none;}
/* 画像（ギャラリー・メニュー/コース・Instagram・動画）の浮き上がりはゆっくりめ */
.ccard.reveal,.gph.reveal,.insta-cell.reveal,.video-grid > .reveal{transition-duration:1.5s;}
/* クリックできる項目はホバーでふわっと持ち上がる */
.ccard,.news-item{transition:transform .35s ease,box-shadow .35s ease;}
.ccard:hover,.news-item.clickable:hover{transform:translateY(-5px);box-shadow:0 12px 28px rgba(60,50,40,.12);}
@media (prefers-reduced-motion: reduce){ .reveal{opacity:1 !important;transform:none !important;transition:none;} }
.section.cream{background:rgba(247,244,239,.72);}

/* プレースホルダ画像 */
.ph{background:var(--cream2);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;
  color:var(--muted);font-family:var(--latin);font-size:15px;letter-spacing:.2em;text-transform:uppercase;}

/* ===== ヘッダ ===== */
header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
header .bar{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:70px;padding:8px 24px;}
.logo{font-family:var(--latin);font-size:26px;letter-spacing:.14em;font-weight:500;white-space:nowrap;flex:0 0 auto;}
.logo small{display:block;font-family:var(--sans);font-size:9.5px;letter-spacing:.35em;color:var(--muted);margin-top:-4px;}
.logo.has-img{line-height:0;}
.logo-img{height:46px;width:auto;max-width:200px;display:block;object-fit:contain;}
nav.menu{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center;justify-content:flex-end;flex:1 1 auto;}
nav.menu a{font-size:13.5px;letter-spacing:.12em;color:var(--sub);white-space:nowrap;}
nav.menu a:hover{color:var(--accent);}
nav.menu a.btn{background:var(--accent);border:1px solid var(--accent);padding:8px 15px;color:#fff;letter-spacing:.08em;border-radius:1px;white-space:nowrap;}
nav.menu a.btn:hover{opacity:.88;}
nav.menu a.btn.has-ico{display:inline-flex;align-items:center;gap:7px;}
.hamburger{display:none;flex-direction:column;justify-content:center;gap:6px;background:none;border:none;cursor:pointer;padding:6px 2px;}
.hamburger span{display:block;width:34px;height:2.5px;background:var(--ink);border-radius:2px;}

/* ===== ヒーロー ===== */
.hero{position:relative;height:66vh;min-height:440px;max-height:760px;overflow:hidden;
  background:linear-gradient(180deg,#fbfaf7,#efe9e1);}
.hero-caption{background:#fff;text-align:center;padding:46px 20px 8px;}
.hero-caption .latin{font-family:var(--latin);font-size:clamp(44px,7vw,82px);font-weight:400;letter-spacing:.06em;line-height:1;color:var(--ink);}
.hero-caption .tagline{font-family:var(--serif);font-size:clamp(14px,2.2vw,18px);letter-spacing:.28em;color:var(--sub);margin-top:18px;}
.hero-caption .subtag{font-size:12px;letter-spacing:.24em;color:var(--muted);margin-top:12px;}
.hero-caption .rule{width:1px;height:44px;background:var(--accent);margin:28px auto 0;}
.hero-caption .cta{display:inline-block;margin-top:28px;background:var(--accent);border:1px solid var(--accent);color:#fff;padding:14px 40px;font-size:12.5px;letter-spacing:.2em;border-radius:1px;transition:.2s;}
.hero-caption .cta:hover{opacity:.88;}
/* オープニング明けにヒーローの各要素がふわっと順に浮き上がる */
.hero-caption > *{opacity:0;transform:translateY(34px);}
.hero-caption.enter > *{animation:heroUp 1.5s cubic-bezier(.22,.61,.3,1) forwards;}
.hero-caption.enter > *:nth-child(2){animation-delay:.14s;}
.hero-caption.enter > *:nth-child(3){animation-delay:.28s;}
.hero-caption.enter > *:nth-child(4){animation-delay:.42s;}
.hero-caption.enter > *:nth-child(5){animation-delay:.56s;}
@keyframes heroUp{to{opacity:1;transform:none;}}
@media (prefers-reduced-motion: reduce){ .hero-caption > *{opacity:1 !important;transform:none !important;animation:none !important;} }
.hero .ph-hero{position:absolute;inset:0;background:
  repeating-linear-gradient(45deg,#efe9e1 0 22px,#f3eee6 22px 44px);opacity:.7;z-index:0;}
.hero .hero-media{position:absolute;inset:0;z-index:0;overflow:hidden;}
.hero .hero-media video,.hero .hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hero .hero-media img{opacity:0;transition:opacity 1.4s ease;}
.hero .hero-media img.on{opacity:1;}
.hero .hero-scrim{position:absolute;inset:0;z-index:1;background:rgba(255,255,255,.30);display:none;}
.hero .inner{position:relative;z-index:2;padding:20px;}
.hero .latin{font-family:var(--latin);font-size:clamp(52px,9vw,104px);font-weight:400;letter-spacing:.06em;line-height:1;color:var(--ink);}
.hero .tagline{font-family:var(--serif);font-size:clamp(15px,2.4vw,19px);letter-spacing:.28em;color:var(--sub);margin-top:22px;}
.hero .subtag{font-size:12px;letter-spacing:.24em;color:var(--muted);margin-top:14px;}
.hero .rule{width:1px;height:52px;background:var(--accent);margin:34px auto 0;}
.hero .cta{display:inline-block;margin-top:34px;background:var(--accent);border:1px solid var(--accent);color:#fff;padding:14px 40px;
  font-size:12.5px;letter-spacing:.2em;border-radius:1px;transition:.2s;}
.hero .cta:hover{opacity:.88;}
.hero-caption .hero-logo-img{height:clamp(56px,11vw,104px);width:auto;max-width:88%;display:block;margin:0 auto;}

/* ===== About ===== */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
.about-grid .ph{aspect-ratio:4/5;}
.about-grid .about-photo{aspect-ratio:4/5;overflow:hidden;}
.about-grid .about-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.about .eyebrow{display:block;margin-bottom:16px;}
.about h2{font-family:var(--serif);font-size:26px;font-weight:500;letter-spacing:.08em;line-height:1.7;margin-bottom:22px;}
.about p{color:var(--sub);margin-bottom:18px;font-size:14.5px;}
.about .sign{font-family:var(--latin);font-size:22px;color:var(--accent);margin-top:8px;letter-spacing:.1em;}

/* ===== Gallery ===== */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.gallery-grid .ph{aspect-ratio:1/1;}
.gallery-note{text-align:center;color:var(--muted);font-size:12.5px;letter-spacing:.14em;margin-top:28px;}
.gallery-grid .gph{padding:0;margin:0;border:1px solid var(--line);background:var(--cream2);cursor:pointer;aspect-ratio:1/1;overflow:hidden;display:block;}
.gallery-grid .gph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;}
.gallery-grid .gph:hover img{transform:scale(1.06);}

/* ===== Movie ===== */
.yt-wrap{position:relative;padding-top:56.25%;max-width:820px;margin:0 auto 22px;}
.yt-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.video-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;max-width:820px;margin:0 auto;}
.video-grid video{width:100%;border-radius:2px;background:#000;display:block;aspect-ratio:16/9;object-fit:cover;}
@media(max-width:820px){.video-grid{grid-template-columns:1fr;}}

/* ===== News ===== */
.news-list{max-width:720px;margin:0 auto;}
.news-item{display:flex;gap:20px;padding:18px 0;border-bottom:1px solid var(--line);}
.news-item .news-date{flex:0 0 96px;font-family:var(--latin);font-size:15px;color:var(--accent);letter-spacing:.06em;padding-top:1px;}
.news-item .news-title{font-family:var(--serif);font-size:15px;color:var(--ink);letter-spacing:.04em;}
.news-item .news-text{color:var(--sub);font-size:13.5px;margin-top:6px;line-height:1.9;}
.news-empty{text-align:center;color:var(--muted);font-size:12.5px;letter-spacing:.14em;}
@media(max-width:640px){.news-item{flex-direction:column;gap:4px;}.news-item .news-date{flex:none;}}
.news-item.clickable{cursor:pointer;transition:opacity .15s;color:inherit;}

/* ===== Cards（コース・代表的なクッキー） ===== */
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;max-width:960px;margin:0 auto;}
.ccard{text-align:center;cursor:pointer;background:none;border:none;padding:0;font:inherit;display:block;color:inherit;}
.ccard .cimg{aspect-ratio:4/3;background:var(--cream2);border:1px solid var(--line);overflow:hidden;}
.ccard .cimg img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;}
.ccard:hover .cimg img{transform:scale(1.05);}
.ccard .ctitle{font-family:var(--serif);font-size:16px;color:var(--ink);margin:14px 0 4px;letter-spacing:.06em;}
.ccard .cprice{font-size:13px;color:var(--accent);letter-spacing:.04em;margin:0 0 6px;font-weight:500;}
.ccard .cmore{font-family:var(--latin);font-size:11px;letter-spacing:.18em;color:var(--accent);}
@media(max-width:820px){.card-grid{grid-template-columns:1fr 1fr;gap:18px;}}
@media(max-width:520px){.card-grid{grid-template-columns:1fr;}}

/* ===== FAQ（インライン展開） ===== */
.faq-list{max-width:760px;margin:0 auto;}
.faq-di{padding:22px 4px;border-bottom:1px solid var(--line);}
.faq-di:first-child{border-top:1px solid var(--line);}
.faq-dq{font-family:var(--serif);font-size:16px;color:var(--ink);letter-spacing:.03em;line-height:1.7;font-weight:500;}
.faq-da{font-size:14px;color:var(--sub);line-height:1.95;margin-top:10px;}

/* ===== Order Guide ===== */
.guide-stack{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:18px;}
.guide-stack img{width:100%;border-radius:10px;box-shadow:0 2px 14px rgba(0,0,0,.06);display:block;}
/* オーダーガイド：画像をタップ/スワイプでページめくり（左=前へ・右=次へ） */
.guide-slider{max-width:720px;margin:0 auto;text-align:center;}
.guide-stage{position:relative;display:block;width:100%;touch-action:pan-y;user-select:none;-webkit-user-select:none;}
.guide-stage .og-slide{display:block;max-width:100%;max-height:calc(100vh - 210px);min-height:200px;object-fit:contain;border-radius:10px;box-shadow:0 2px 14px rgba(0,0,0,.06);margin:0 auto;pointer-events:none;}
.guide-stage .og-slide:not(.on){display:none;}
.og-tap{position:absolute;top:0;bottom:0;width:45%;z-index:2;cursor:pointer;display:flex;align-items:center;background:none;border:none;padding:0;-webkit-tap-highlight-color:transparent;}
.og-tap.prev{left:0;justify-content:flex-start;}
.og-tap.next{right:0;justify-content:flex-end;}
.og-hint{width:36px;height:36px;margin:0 10px;border-radius:50%;background:rgba(255,255,255,.82);color:var(--ink);display:flex;align-items:center;justify-content:center;font-size:22px;line-height:1;opacity:.55;transition:opacity .2s;pointer-events:none;box-shadow:0 1px 6px rgba(0,0,0,.18);}
.guide-stage:hover .og-tap:not(:disabled) .og-hint{opacity:.9;}
.og-tap:disabled{cursor:default;}
.og-tap:disabled .og-hint{opacity:0;}
.guide-count{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);background:rgba(20,16,12,.6);color:#fff;font-size:12px;letter-spacing:.1em;padding:5px 14px;border-radius:999px;pointer-events:none;}
@media(max-width:560px){ .og-hint{width:32px;height:32px;font-size:20px;margin:0 6px;} }

/* ===== Flow ===== */
.flow-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;}
.flow-item{text-align:center;}
.flow-item .no{font-family:var(--latin);font-size:40px;color:var(--accent);font-weight:400;line-height:1;}
.flow-item .t{font-family:var(--serif);font-size:16px;letter-spacing:.08em;margin:14px 0 8px;}
.flow-item p{color:var(--sub);font-size:13px;line-height:1.8;}

/* ===== Notes ===== */
.notes{max-width:760px;margin:0 auto;}
.notes ul{list-style:none;}
.notes li{padding:16px 0 16px 26px;border-bottom:1px solid var(--line);color:var(--sub);font-size:14px;position:relative;}
.notes li::before{content:"—";position:absolute;left:0;color:var(--accent);}

/* ===== CTA ===== */
.cta-sec{text-align:center;background:var(--dark);color:#fff;padding:96px 0;}
.cta-sec .eyebrow{color:#cbb79e;}
.cta-sec h2{font-family:var(--serif);font-size:26px;font-weight:500;letter-spacing:.1em;margin:16px 0 10px;}
.cta-sec p{color:#c8bfb4;font-size:14px;margin-bottom:34px;}
.cta-sec a.order{display:inline-block;background:var(--accent);border:1px solid var(--accent);color:#fff;padding:16px 52px;font-size:13px;letter-spacing:.24em;border-radius:1px;transition:.2s;}
.cta-sec a.order:hover{opacity:.88;}

/* ===== SNS ===== */
.sns{text-align:center;}
.sns .links{display:flex;gap:20px;justify-content:center;flex-wrap:wrap;margin-top:8px;}
.sns .links a{border:1px solid var(--line);background:#fff;padding:12px 22px;font-size:13px;font-weight:600;letter-spacing:.12em;color:var(--sub);border-radius:6px;transition:.2s;width:240px;min-height:66px;box-shadow:0 1px 3px rgba(43,38,34,.05);}
.sns .links a:hover{border-color:var(--accent);box-shadow:0 4px 12px rgba(43,38,34,.11);transform:translateY(-1px);}
.sns .links a.has-ico{display:inline-flex;align-items:center;justify-content:center;gap:12px;}
.sns .links a .lk-ico{width:30px;height:30px;flex-shrink:0;}
.sns .links a .lk-t{text-align:center;line-height:1.4;}
.sns .links a.sns-instagram{color:#c2255c;}
.sns .links a.sns-line{color:#06a548;}
.sns .links a.sns-blog{color:#2a8f45;}
.lk-ico{width:18px;height:18px;flex:0 0 auto;display:block;}

/* ===== Footer ===== */
footer{background:var(--cream);border-top:1px solid var(--line);padding:60px 0 40px;text-align:center;}
footer .logo{margin-bottom:18px;}
footer .info{color:var(--sub);font-size:13px;line-height:2;}
footer .copy{margin-top:26px;font-family:var(--latin);font-size:12px;letter-spacing:.2em;color:var(--muted);}

@media(max-width:820px){
  .section{padding:76px 0;}
  .about-grid{grid-template-columns:1fr;gap:34px;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .flow-grid{grid-template-columns:1fr 1fr;gap:34px 20px;}
}
/* ナビが詰まる幅ではハンバーガーに切替（外部リンク追加で横幅を取るため） */
@media(max-width:1000px){
  nav.menu{display:none;}
  .hamburger{display:flex;}
  nav.menu.open{display:flex;flex-direction:column;align-items:stretch;position:absolute;right:24px;top:70px;background:#fff;padding:16px 18px;border:1px solid var(--line);border-radius:2px;gap:12px;box-shadow:0 10px 30px rgba(0,0,0,.1);min-width:210px;}
  nav.menu.open a{text-align:center;}
  nav.menu.open a.btn{width:100%;justify-content:center;}
}

/* ===== 詳細ページ（menu/gallery/news）— 既存クラスを維持 ===== */
.wrap.detail{max-width:1080px;padding:24px 20px 80px;}
.detail{max-width:820px;}
.crumb{font-size:12.5px;color:var(--muted);letter-spacing:.06em;margin-bottom:22px;}
.crumb a{color:var(--muted);}
.detail .hero{position:static;height:auto;min-height:0;max-height:none;border-radius:10px;overflow:hidden;margin-bottom:26px;background:var(--cream2);box-shadow:0 2px 14px rgba(60,50,40,.08);}
.detail .hero img{position:static;width:100%;max-height:62vh;object-fit:cover;display:block;opacity:1;}
.detail h1{font-family:var(--serif);font-size:clamp(24px,4vw,34px);font-weight:500;letter-spacing:.06em;}
.detail .d-price{font-family:var(--serif);color:var(--accent);font-size:17px;margin:14px 0;padding-bottom:16px;border-bottom:1px solid var(--line);}
.detail .d-cat{display:inline-block;font-size:12px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:4px 14px;margin:8px 0 14px;}
.detail .d-body{color:var(--sub);font-size:15px;white-space:pre-wrap;margin-top:14px;line-height:2.1;}
.detail .d-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-top:28px;}
.detail .d-gallery img{width:100%;border-radius:8px;display:block;}
.detail .d-date{font-family:var(--latin);font-size:14px;letter-spacing:.08em;color:var(--accent);margin-bottom:6px;}
.detail .back{display:inline-block;margin-top:34px;color:var(--accent);text-decoration:none;letter-spacing:.06em;}
.detail .back:hover{opacity:.75;}

/* ユーティリティ（ギャラリー絞り込み） */
.hidden{display:none !important;}
