:root{--paper:#faf4e8;--white:#fffbf3;--ink:#263235;--muted:#67706f;--pink:#cb0056;--line:#e5d8c5;--soft:#eee2cf;--serif:'Zen Old Mincho',serif;--sans:'Noto Sans JP',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:92px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.9;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{color:var(--pink)}a:focus-visible,summary:focus-visible{outline:2px solid var(--pink);outline-offset:5px}img{max-width:100%;display:block;height:auto}h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3,h4{font-family:var(--serif);font-weight:500}h2{text-align:center;font-size:30px;letter-spacing:.08em}h4{font-size:18px;line-height:1.5}section,[id]{scroll-margin-top:90px}.wrap{width:min(1120px,calc(100% - 40px));margin-inline:auto}.skip{position:fixed;top:-80px;left:10px;z-index:100;background:white;padding:10px}.skip:focus{top:10px}
.header{position:fixed;inset:0 0 auto;z-index:10;background:rgba(255,251,243,.95);border-bottom:1px solid #e5d8c580;transition:box-shadow .2s}.header.scrolled{box-shadow:0 3px 15px #26323509}.header-inner{max-width:1280px;padding:13px 28px;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:16px}.brand{width:170px;flex-shrink:0}.header nav{display:flex;gap:28px;font-size:14px;white-space:nowrap}.header nav a{padding:9px 0}.logo{width:100%;height:auto}
.hero{position:relative;margin-top:77px;min-height:575px;overflow:hidden;background:#f4ead8}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#faf4e8 0%,#faf4e8ed 22%,#faf4e87a 43%,transparent 65%)}.hero-inner{position:relative;z-index:1;width:min(1120px,calc(100% - 40px));margin:auto;padding:68px 0}.hero-copy{width:440px}.hero-copy .logo{width:290px;margin-bottom:30px}.hero h1{font-size:43px;letter-spacing:.06em;line-height:1.55}.short-rule{display:block;width:36px;height:2px;background:var(--pink);margin:25px 0}.hero-copy p{font-size:16px;line-height:2}.quick-info{display:flex;justify-content:center;align-items:center;background:var(--white);padding:24px 10px;border-bottom:1px solid var(--line);gap:0}.quick-info>span{padding:0 42px;line-height:1.6;border-right:1px solid var(--line);font-size:16px}.quick-info>span:last-child{border:0}.quick-info i{font-style:normal;color:var(--pink);margin-right:8px;font-size:21px}.eyebrow{text-align:center;font-size:clamp(11px,calc(10px + .15vw),12px);line-height:1.4;letter-spacing:.24em;color:var(--pink);margin-bottom:3px}.menu-wrap{padding-top:72px}.category-nav{display:flex;overflow:auto;justify-content:center;margin-top:29px;padding:0 0 12px;white-space:nowrap;scrollbar-width:thin}.category-nav a{padding:8px 23px;border-right:1px solid var(--line);font-size:14px}.category-nav a:first-child{padding-left:0}.category-nav a:last-child{border:0;padding-right:0}.menu-section{margin-top:53px}.ornament{display:flex;align-items:center;gap:20px;font-size:27px;margin-bottom:25px;letter-spacing:.07em}.ornament:before,.ornament:after{content:'';height:5px;border-top:1.5px solid #d9879f;border-bottom:1.5px solid #d9879f;flex:1}.ornament span{display:flex;align-items:center;gap:14px}.ornament span:before,.ornament span:after{content:'回';font-size:21px;color:#d9879f;font-family:serif;font-weight:400}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.card{background:var(--white);border:1px solid var(--line);border-radius:7px;padding:8px;overflow:hidden}.card>img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:2px}.card-copy{padding:12px 8px 10px}.price{margin-top:5px;font-size:16px;font-weight:500}.note{font-size:12px;color:var(--muted);margin-top:9px;line-height:1.85}.set-cards{grid-template-columns:1fr 1fr}.set-cards .card:first-child{grid-column:1/-1;display:grid;grid-template-columns:1.1fr 1fr;align-items:center}.set-cards .card:first-child>img{aspect-ratio:16/9}.set-cards .card:first-child .card-copy{padding:25px 35px}.set-cards .card:first-child h4{font-size:29px}.set-cards .card:first-child .price{font-size:28px;color:var(--pink)}.set-cards .card:first-child .note{font-size:14px}.set-cards .card:not(:first-child){display:grid;grid-template-columns:45% 1fr;align-items:center}.set-cards .card:not(:first-child)>img{height:100%;min-height:170px}.set-cards .card:not(:first-child) .card-copy{padding:14px}.set-cards h4{font-size:21px}.menu-end{text-align:center;font-size:14px;margin:38px 0 70px;line-height:2.1}
.access{background:#f4ebdc;padding:65px 0}.access-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:64px;margin-top:38px}.store-name{font-size:25px;margin-bottom:20px}.store-data{margin:0}.store-data>div{display:grid;grid-template-columns:85px 1fr;border-bottom:1px solid #ddceb9;padding:13px 0;font-size:14px}.store-data dt{color:var(--muted)}.store-data dd{margin:0}.store-data small{font-size:12px}.reservation{border-left:2px solid #c76a8a;margin:23px 0;padding:2px 0 2px 17px}.reservation h4{font-family:var(--sans);font-size:14px;font-weight:500}.reservation p{font-size:13px;margin-top:8px}.button{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--pink);border-radius:7px;color:var(--pink);padding:12px 20px;text-align:center;transition:background .2s,color .2s}.button:hover{background:var(--pink);color:white}.store-photos{display:grid;align-content:start;gap:24px}.store-photos img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:2px}.store-photos figcaption{font-size:11px;color:var(--muted);margin-top:6px}.map{border:0;width:100%;height:340px;margin-top:35px}.map-button{max-width:330px;margin:22px auto 0}.news{padding-top:65px;padding-bottom:75px}.news-list{max-width:760px;margin:28px auto 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.empty-news{padding:25px 0;font-size:14px;color:var(--muted);text-align:center}details{padding:17px 0;border-bottom:1px solid var(--line)}details:last-child{border-bottom:0}summary{cursor:pointer;display:flex;gap:22px;align-items:center;padding:5px 0;font-size:14px}summary:after{content:'＋';margin-left:auto;color:var(--pink)}details[open] summary:after{content:'−'}summary time{font-size:12px;color:var(--muted)}details>p{padding:18px 0}footer{border-top:4px double #d6a5b4;background:var(--white);padding:35px 0 18px}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:25px}footer .logo{width:170px}footer p{font-size:12px;margin-top:15px;color:var(--muted)}footer nav{display:flex;gap:27px;font-size:13px}.copyright{text-align:center;font-size:10px;margin-top:35px}.emergency{border:1px solid var(--pink);padding:14px;margin-top:25px}



@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* 見出しと区切りの雷紋 */
.ornament span:before,
.ornament span:after{
  content:'';
  display:block;
  width:48px;
  height:24px;
  flex:0 0 48px;
  background:url('../images/raimon.svg') center / contain no-repeat;
}
.ornament span:after{transform:scaleX(-1)}
/* 文字サイズは範囲を持たせ、画面幅に応じて滑らかに変える。 */
:root{
  --section-title-size:clamp(30px, calc(24px + .75vw), 38px);
  --category-title-size:clamp(24px, calc(20px + .5vw), 28px);
  --product-name-size:clamp(18px, calc(15px + .4vw), 22px);
  --product-price-size:clamp(17px, calc(14px + .4vw), 21px);
  --set-name-size:clamp(20px, calc(17px + .4vw), 24px);
  --lunch-name-size:clamp(24px, calc(20px + .6vw), 30px);
  --lunch-price-size:clamp(24px, calc(20px + .6vw), 30px);
  --store-name-size:clamp(20px, calc(18px + .25vw), 22px);
}
.menu-intro h2,.access h2,.news h2{font-size:var(--section-title-size)}
.menu-intro h2,.access h2,.news h2{
  display:flex;align-items:center;justify-content:center;
  gap:clamp(10px,1.4vw,18px);
}
.menu-intro h2:before,.menu-intro h2:after,
.access h2:before,.access h2:after,.news h2:before,.news h2:after{
  content:'';display:block;
  width:clamp(18px,2vw,25px);height:clamp(18px,2vw,25px);
  flex:0 0 clamp(18px,2vw,25px);
  background:url('../images/flower-icon.svg') center / contain no-repeat;
  opacity:.85;pointer-events:none;
}
.access h2:before,.access h2:after{background-image:url('../images/flower-icon-access.svg')}
.menu-section .ornament{font-size:var(--category-title-size)}
.card h4{font-size:var(--product-name-size)}
.card .price{font-size:var(--product-price-size)}
/* 通常カードのみ、商品名を主・価格を従にする。セットには適用しない。 */
.cards:not(.set-cards) .card h4{
  font-family:var(--serif);
  font-size:clamp(20px,calc(17px + .3vw),22px);
  font-weight:500;
}
.cards:not(.set-cards) .card .price{
  font-family:var(--sans);
  font-size:clamp(16px,calc(14px + .25vw),18px);
  font-weight:400;
  margin-top:clamp(3px,.25vw,4px);
}
.set-cards h4{font-size:var(--set-name-size)}
.set-cards .card:first-child h4{font-size:var(--lunch-name-size)}
.set-cards .card:first-child .price{font-size:var(--lunch-price-size)}
.access .store-name{font-size:var(--store-name-size)}
.card-copy{text-align:center}
.set-cards .card-copy{text-align:left}
/* 支給の雲は背景色を入れ替えて薄く重ねる。ローカル表示でも読み込める背景画像を使用。 */
:root{--access-paper:#f4ebdc;--cloud-opacity:.7}
.access{background-color:var(--access-paper)}
main{overflow-x:clip}
.menu-section,.store-data,.reservation{position:relative}
.menu-section:before,.news:before,.news:after,
.access:before,.store-data:before,.reservation:after{
  content:'';
  position:absolute;
  z-index:-1;
  pointer-events:none;
  width:clamp(320px,38vw,520px);
  height:clamp(150px,18vw,245px);
  background:var(--cloud-shape) center / contain no-repeat;
  opacity:var(--cloud-opacity);
}
.menu-section:before{
  --cloud-shape:url('../images/cloud-3-beige.svg');
  left:-95px;top:-65px;
}
.menu-section:after{content:none}
.menu-section:nth-of-type(even):before{
  --cloud-shape:url('../images/cloud-4-beige.svg');
  left:auto;right:-95px;
}
.menu-section:nth-of-type(3):before{--cloud-shape:url('../images/cloud-5-beige.svg')}
.news:before{--cloud-shape:url('../images/cloud-2-beige.svg');left:-65px;top:12px}
.news:after{--cloud-shape:url('../images/cloud-5-beige.svg');right:-55px;bottom:5px}
.access:before,.store-data:before,.reservation:after{opacity:.9}
.access:before{--cloud-shape:url('../images/cloud-4-light.svg');right:-35px;top:240px;width:clamp(360px,40vw,580px);height:270px}
.store-data:before{--cloud-shape:url('../images/cloud-2-light.svg');left:-75px;top:0}
.reservation:after{--cloud-shape:url('../images/cloud-3-light.svg');left:-85px;bottom:-65px;width:clamp(340px,36vw,480px);height:210px}

.button{justify-content:center;gap:10px}
.phone-icon{width:19px;height:19px;flex:0 0 19px}
.quick-icon{display:inline-block;width:24px;height:24px;margin-right:8px;vertical-align:-5px;color:var(--pink)}
.ornament:before,.ornament:after{border-color:#e3b3c1}
.menu-wrap,.access,.news{position:relative;isolation:isolate}
.quick-info{position:relative;margin-bottom:0;border-bottom:0}
.quick-info:after{
  content:'';
  position:absolute;
  top:100%;
  left:0;
  right:0;
  height:18px;
  background:url('../images/raimon-border.svg') left center / 42px 18px repeat-x;
  opacity:.45;
  pointer-events:none;
}
footer{border-top:0;position:relative;padding-top:49px}
footer:before{
  content:'';position:absolute;inset:0 0 auto;height:18px;
  background:url('../images/raimon-border.svg') left center / 42px 18px repeat-x;
  opacity:.45;pointer-events:none;
}


/* 基本はPC配置。コンテンツと画像には上限を設ける。 */
:root{--content-max:1120px;--page-gutter:clamp(24px,3vw,48px);--header-height:78px}
body{font-size:clamp(15px,calc(14px + .125vw),17px)}
.wrap,.hero-inner{width:min(var(--content-max),calc(100% - var(--page-gutter) * 2))}
.header-inner{width:min(1200px,calc(100% - var(--page-gutter) * 2));height:var(--header-height);padding:12px 0}
.hero{margin-top:var(--header-height);min-height:clamp(480px,40vw,575px)}
.hero-photo{object-position:60% 52%}
.hero-inner{padding:clamp(44px,4.5vw,68px) 0}
.hero-copy{width:min(43%,440px)}
.hero-copy .logo{width:clamp(215px,20vw,290px);max-width:100%}
.hero h1{font-size:clamp(36px,calc(24px + 1.4vw),48px);letter-spacing:.025em}
.hero-copy p{font-size:clamp(14px,calc(12px + .25vw),17px)}
.hero:after{background:linear-gradient(90deg,#faf4e8 0%,#faf4e8ed 10%,#faf4e87a 44%,transparent 67%)}
.card,.card-copy,.access-grid>*,.store-data dd{min-width:0}
.card>img{max-width:100%;height:auto;aspect-ratio:4/3}
.set-cards .card:first-child>img{max-width:600px;margin-inline:auto;aspect-ratio:16/9}
.set-cards .card:not(:first-child)>img{height:auto;min-height:0;aspect-ratio:4/3}
.store-photos img{max-width:560px;margin-inline:auto;aspect-ratio:16/10}
.access-grid{gap:clamp(28px,4vw,64px)}
.store-data>div,.reservation p,.empty-news,.menu-end{font-size:clamp(14px,calc(12px + .25vw),16px)}

/* 768〜1279px：PC系統を保ちつつ、カードとFVを窮屈にしない。 */
@media(min-width:768px) and (max-width:1279px){
 .cards:not(.set-cards){grid-template-columns:repeat(3,minmax(0,1fr))}
 .cards{gap:16px}
 .brand{width:150px}
 .header nav{gap:22px}
 .hero-copy{width:46%}
 .hero-photo{object-position:64% center}
 .hero-copy .logo{margin-bottom:24px}
 .hero:after{background:linear-gradient(90deg,#faf4e8 0%,#faf4e8ed 26%,#faf4e87a 47%,transparent 72%)}
 .set-cards .card:not(:first-child){display:block}
 .set-cards .card:first-child .card-copy{padding:22px}
 .category-nav a{padding-inline:clamp(12px,1.5vw,19px)}
 .quick-info>span{padding-inline:24px}
}

/* 1600px以上：左右余白を主体に、コンテンツは1200pxで止める。 */
@media(min-width:1600px){
 :root{--content-max:1200px}
 .hero-photo{object-position:center 57%}
 .hero-inner{padding-block:72px}
}

/* PCの雲はコンテンツ端を基準に、主に左右の余白へ広げる。 */
@media(min-width:768px){
 .menu-section:before,.news:before,.news:after,
 .access:before,.store-data:before,.reservation:after{
  z-index:-1;pointer-events:none;opacity:.6;
 }
 .menu-section:before{
  left:0;right:auto;top:-50px;
  width:clamp(300px,28vw,450px);height:190px;
  transform:translateX(-72%);
 }
 .menu-section:nth-of-type(even):before{
  left:auto;right:0;top:-78px;
  width:clamp(400px,36vw,600px);height:270px;
  transform:translateX(70%);
 }
 .menu-section:nth-of-type(3):before{
  top:-28px;width:clamp(240px,21vw,330px);height:145px;
  transform:translateX(-78%);
 }
 .menu-section:nth-of-type(5):before{
  top:-65px;width:clamp(350px,31vw,500px);height:215px;
 }
 .news:before{
  left:0;top:15px;width:clamp(260px,25vw,380px);height:145px;
  transform:translateX(-75%);
 }
 .news:after{
  right:0;bottom:-15px;width:clamp(360px,32vw,510px);height:195px;
  transform:translateX(74%);
 }
 .access:before{
  right:max(var(--page-gutter),calc((100% - var(--content-max))/2));
  top:450px;width:clamp(420px,40vw,640px);height:300px;
  transform:translateX(72%);opacity:.72;
 }
 .store-data:before{
  left:0;top:-75px;width:clamp(280px,27vw,400px);height:155px;
  transform:translateX(-77%);opacity:.72;
 }
 .reservation:after{
  left:0;bottom:-60px;width:clamp(360px,34vw,530px);height:225px;
  transform:translateX(-80%);opacity:.72;
 }
}

/* 767px以下：スマホ系統。カード2列と縦並びの店舗情報。 */
@media(max-width:767px){
body{font-size:14px}.wrap{width:calc(100% - 32px)}.header-inner{padding:10px 16px;min-height:64px}.brand{width:124px}.header nav{gap:18px;font-size:12px}.short-rule{margin:15px 0;width:29px}.quick-info{padding:18px 5px}.quick-info>span{padding:0 10px;font-size:11px;white-space:nowrap}.quick-info i{font-size:14px;margin-right:3px}.menu-wrap{padding-top:44px}h2{font-size:25px}.category-nav{margin-top:20px;margin-right:-16px;padding-right:16px}.category-nav a{font-size:12px;padding-inline:15px}.menu-section{margin-top:34px}.ornament{font-size:22px;gap:12px;margin-bottom:18px}.ornament span{gap:9px}.ornament span:before,.ornament span:after{font-size:16px}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.card{padding:6px}.card-copy{padding:9px 3px 7px}h4{font-size:16px}.price{font-size:14px;margin-top:4px}.note{font-size:11px;margin-top:6px}.set-cards{grid-template-columns:1fr}.set-cards .card:first-child{display:block}.set-cards .card:first-child .card-copy{padding:15px 12px}.set-cards .card:first-child .note{font-size:12px}.set-cards .card:not(:first-child){display:grid;grid-template-columns:40% 1fr}.set-cards .card:not(:first-child)>img{min-height:142px}.set-cards .card:not(:first-child) .card-copy{padding:10px}.set-cards .note{font-size:11px;line-height:1.9}.menu-end{font-size:12px;margin:28px 0 44px}.access{padding:42px 0}.access-grid{grid-template-columns:1fr;margin-top:28px;gap:28px}.store-name{font-size:23px}.store-data>div{font-size:13px;grid-template-columns:75px 1fr}.store-photos{gap:18px}.news{padding-top:42px;padding-bottom:45px}.footer-inner{align-items:flex-start;flex-direction:column;gap:20px}footer .logo{width:150px}footer nav{gap:28px}footer p{font-size:11px}.copyright{margin-top:25px}summary{gap:12px;font-size:13px}

  .menu-section:before{left:-65px;top:-40px;width:240px;height:115px}
  #lunch_set:before {  top: -100px; /* 現在の-40pxから30px上へ */}
  .menu-section:nth-of-type(even):before{left:auto;right:-65px}
  .news:before{left:-60px;top:0;width:210px;height:105px}
  .news:after{right:-60px;bottom:0;width:230px;height:110px}
  .access:before{right:-65px;top:400px;width:285px;height:165px}
  .store-data:before{left:-80px;top:-3px;width:240px;height:110px}
  .reservation:after{left:-75px;bottom:-50px;width:300px;height:145px}


  :root{
    --section-title-size:clamp(24px,calc(20px + 1.1vw),28px);
    --category-title-size:clamp(20px,calc(18px + .55vw),22px);
    --product-name-size:clamp(16px,calc(14px + .55vw),18px);
    --product-price-size:clamp(15px,calc(12px + .8vw),18px);
    --set-name-size:clamp(18px,calc(16px + .55vw),20px);
    --lunch-name-size:clamp(22px,calc(20px + .55vw),24px);
    --lunch-price-size:clamp(23px,calc(20px + .8vw),26px);
    --store-name-size:clamp(18px,calc(17px + .3vw),19px);
  }
  .cards:not(.set-cards) .card h4{
    font-size:clamp(17px,calc(16px + .3vw),18px);
  }
  .cards:not(.set-cards) .card .price{
    font-size:clamp(14px,calc(13px + .3vw),15px);
    margin-top:clamp(2px,.5vw,3px);
  }
  /* PC同様に重ね、横長の表示枠で料理のトリミングを抑える。 */
  .hero{min-height:280px;display:block;background:var(--paper)}
  .footer-inner{align-items:center;text-align:center}
  .quick-icon{width:17px;height:17px;margin-right:3px;vertical-align:-4px}
  footer .logo{margin-inline:auto}
  footer nav{justify-content:center;flex-wrap:wrap}
  .ornament span:before,.ornament span:after{width:32px;height:16px;flex-basis:32px}
  .ornament{gap:9px}
  .ornament span{gap:8px}

 :root{--header-height:64px;--page-gutter:16px}
 body{font-size:clamp(14px,calc(13px + .27vw),15px)}
 .wrap{width:calc(100% - 32px)}
 .header-inner{width:100%;height:var(--header-height);padding:10px 16px}
 .cards:not(.set-cards){grid-template-columns:repeat(2,minmax(0,1fr))}
 .hero{margin-top:var(--header-height);min-height:clamp(310px,58vw,420px);background:var(--paper)}
 .hero-photo{inset:0;width:100%;height:100%;object-fit:cover;object-position:65% center}
 .hero-inner{width:calc(100% - 32px);padding:24px 0 28px}
 .hero-copy{width:70%;max-width:300px}
 .hero-copy .logo{width:clamp(145px,30vw,195px);max-width:100%;margin-bottom:16px}
 .hero h1{font-size:clamp(28px,calc(24px + 1.05vw),32px);line-height:1.55;letter-spacing:0}
 .hero-copy p{font-size:clamp(12px,calc(10px + .55vw),14px);line-height:1.9}
 .hero .short-rule{width:24px;margin:14px 0}
 .hero:after{content:'';background:linear-gradient(90deg,rgba(250,244,232,.98) 0%,rgba(250,244,232,.92) 10%,rgba(250,244,232,.68) 30%,rgba(250,244,232,.1) 76%,transparent 90%)}
 .store-data>div,.reservation p,.empty-news,.menu-end{font-size:clamp(14px,calc(13px + .27vw),15px)}
 .set-cards .card:not(:first-child)>img{height:auto;min-height:0;aspect-ratio:4/3}
}

/* 指定の改行を保ち、各行の文字サイズはmain.jsで実幅に合わせる。 */
.fit-line{display:block;white-space:nowrap;max-width:100%;min-width:0}
.store-data .map-button{width:100%;max-width:340px;min-height:48px;margin:12px 0 0;padding:10px 12px;font-size:14px}
@media(max-width:767px){
 .store-data .map-button{max-width:none}
}
