  :root{
    --kinari:#F2E4C7;
    --kinari-deep:#E8D6AC;
    --akacha:#8C3B2E;
    --akacha-deep:#6E2C21;
    --karashi:#D9A441;
    --fukamidori:#2F4A3C;
    --sumi:#2A2119;
    --sumi-soft:#5B4A3A;
    --tsuchi:#C9622A;
    --line:#CBAE7A;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--kinari);
    color:var(--sumi);
    font-family:"Zen Kaku Gothic New","Yu Gothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;
    line-height:1.85;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  h1,h2,h3{
    font-family:"Shippori Mincho","Yu Mincho","Hiragino Mincho ProN","YuMincho",serif;
    font-weight:700;
    margin:0;
    color:var(--akacha);
  }
  img,svg{max-width:100%;display:block;}
  .wrap{max-width:640px;margin:0 auto;padding:0 24px;}
  .wrap-wide{max-width:1040px;margin:0 auto;padding:0 24px;}
  .sr-only{
    position:absolute;width:1px;height:1px;padding:0;margin:-1px;
    overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
  }

  .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease, transform .8s ease;}
  .reveal.is-visible{opacity:1;transform:none;}
  @media (prefers-reduced-motion: reduce){
    .reveal{opacity:1;transform:none;transition:none;}
    .noren-panel{transform:none !important;transition:none !important;}
  }

  /* ---- photo box: tone background reserved until real photo arrives ---- */
  .photo{
    position:relative;width:100%;
    background:
      repeating-linear-gradient(120deg, rgba(140,59,46,0.10) 0 14px, rgba(47,74,60,0.08) 14px 28px),
      linear-gradient(150deg,#E7B77E 0%, #D89A5C 55%, #C67F44 100%);
    display:flex;overflow:hidden;
  }
  .photo::after{content:"";position:absolute;inset:8px;border:1px solid rgba(42,33,25,.3);pointer-events:none;}
  .photo img{
    position:absolute;inset:0;width:100%;height:100%;
    object-fit:cover;background-color:#D89A5C;
  }

  .tag{
    display:inline-flex;align-items:center;gap:8px;
    font-size:12px;letter-spacing:.24em;color:var(--tsuchi);
    font-weight:700;margin-bottom:10px;
  }

  /* ---- hero: noren ---- */
  .hero{position:relative;background:var(--akacha-deep);}
  .hero .photo{aspect-ratio:3/4;min-height:440px;}
  .hero .photo::after{display:none;}
  .noren-wrap{
    position:absolute;left:0;right:0;top:14%;
    display:flex;justify-content:center;gap:4px;
    padding:0 18px;z-index:2;
    box-sizing:border-box;
    max-width:100%;
    overflow:hidden;
  }
  .noren-panel{
    flex:0 0 38px;
    width:38px;
    box-sizing:border-box;
    background:rgba(140,59,46,0.88);
    border-bottom:2px solid var(--karashi);
    box-shadow:0 6px 14px rgba(0,0,0,.28);
    padding:12px 0 16px;
    transform-origin:top center;
    transition:transform .7s cubic-bezier(.2,.7,.3,1), opacity .5s ease;
    transition-delay:calc(var(--i) * 90ms);
    transform:translateY(-46px);
    opacity:0;
  }
  .noren-panel .ch{
    display:block;
    writing-mode:vertical-rl;
    text-orientation:upright;
    color:#F6ECD6;
    font-family:"Shippori Mincho","Yu Mincho",serif;
    font-weight:700;
    font-size:19px;
    line-height:1;
    text-align:center;
  }
  .noren-wrap.is-visible .noren-panel{transform:translateY(0);opacity:1;}
  .hero-lower{
    position:absolute;left:0;right:0;bottom:0;
    padding:0 22px 28px;z-index:2;text-align:center;
    background:linear-gradient(to top, rgba(30,17,12,0.75), rgba(30,17,12,0.02) 82%);
  }
  .hero-lower .catch{
    color:#F8EFDC;font-size:18px;letter-spacing:.05em;margin:0 0 20px;
    font-family:"Shippori Mincho","Yu Mincho",serif;font-weight:700;
  }
  .hero-lower .scroll{color:var(--karashi);font-size:12px;letter-spacing:.18em;}

  /* ---- about ---- */
  .about{background:var(--fukamidori);color:#F1E9CF;padding:64px 0;}
  .about .wrap-wide{display:flex;flex-direction:column;gap:30px;}
  .about .photo{aspect-ratio:4/3;}
  .about h2{color:#F8EFDC;font-size:23px;margin-bottom:16px;}
  .about p{color:#DCD2AE;font-size:15.5px;max-width:560px;}

  /* ---- kodawari: menu-board list (no equal-card grid) ---- */
  .kodawari{background:var(--kinari);padding:70px 0;position:relative;}
  .kodawari .wrap-wide{display:flex;gap:0;}
  .kodawari-vtab{
    writing-mode:vertical-rl;
    font-family:"Shippori Mincho","Yu Mincho",serif;
    font-size:15px;letter-spacing:.4em;
    color:var(--akacha);
    border-left:3px solid var(--tsuchi);
    padding:6px 0 6px 10px;
    margin-right:22px;
    flex:none;
    align-self:flex-start;
  }
  .kodawari-main{flex:1;min-width:0;}
  .kodawari h2{font-size:22px;margin-bottom:30px;}
  .board-item{
    display:flex;gap:18px;align-items:flex-start;
    padding:20px 0;border-bottom:2px dashed var(--line);
  }
  .board-item:last-child{border-bottom:none;}
  .board-item .photo{flex:0 0 108px;width:108px;aspect-ratio:1/1;}
  .board-num{
    flex:none;
    font-family:"Shippori Mincho","Yu Mincho",serif;font-size:13px;color:#fff;
    background:var(--akacha);
    padding:3px 10px;border-radius:2px;
    letter-spacing:.1em;
    margin-bottom:8px;
    display:inline-block;
  }
  .board-item h3{font-size:16.5px;margin-bottom:6px;}
  .board-item p{color:var(--sumi-soft);font-size:14px;margin:0;}

  /* ---- menu: laminated board ---- */
  .menu{background:var(--sumi);padding:70px 0;}
  .menu .tag{color:var(--karashi);}
  .menu h2{color:#F8EFDC;font-size:22px;margin-bottom:36px;}
  .menu-cat{max-width:640px;margin:0 auto 34px;}
  .menu-cat h3{
    display:inline-block;
    font-family:"Shippori Mincho","Yu Mincho",serif;font-size:14.5px;color:var(--sumi);
    letter-spacing:.14em;background:var(--karashi);
    padding:4px 14px;margin-bottom:16px;
    transform:rotate(-1deg);
  }
  .menu-item{
    display:flex;gap:14px;align-items:center;
    padding:12px 0;border-bottom:1px solid rgba(217,164,65,.28);
  }
  .menu-item:last-child{border-bottom:none;}
  .menu-thumb{flex:0 0 58px;width:58px;height:58px;}
  .menu-info{flex:1;min-width:0;}
  .menu-name{font-size:15.5px;color:#F6ECD6;font-weight:700;}
  .menu-note{font-size:12px;color:var(--karashi);margin-top:2px;}
  .menu-price{
    font-family:"Shippori Mincho","Yu Mincho",serif;font-size:16px;color:var(--karashi);
    white-space:nowrap;background:rgba(217,164,65,.12);
    padding:4px 10px;border-radius:2px;
  }
  .menu-foot{text-align:center;font-size:12.5px;color:#C9BE9E;max-width:640px;margin:10px auto 0;}

  /* ---- gallery: scattered polaroids ---- */
  .gallery{background:var(--kinari-deep);padding:76px 0 96px;overflow:hidden;}
  .gallery h2{font-size:22px;}
  .gallery-lead{color:var(--sumi-soft);font-size:14.5px;margin:12px 0 0;}
  .scatter{
    display:flex;flex-wrap:wrap;gap:22px 16px;
    margin-top:44px;justify-content:center;
  }
  .polaroid{
    background:#FBF3E1;padding:10px 10px 30px;
    box-shadow:0 8px 18px rgba(42,33,25,.22);
    width:150px;flex:0 0 auto;
  }
  .polaroid .photo{aspect-ratio:1/1;}
  .polaroid:nth-child(odd){transform:rotate(-3deg);}
  .polaroid:nth-child(even){transform:rotate(2.5deg);}
  .polaroid:nth-child(3n){transform:rotate(-1.5deg);}

  /* ---- info ---- */
  .info{background:var(--fukamidori);color:#F1E9CF;padding:70px 0;}
  .info h2{color:#F8EFDC;font-size:22px;}
  .info-list{max-width:520px;margin:34px 0 0;}
  .info-row{
    display:flex;justify-content:space-between;gap:20px;
    padding:14px 4px;border-bottom:1px solid rgba(241,233,207,.22);font-size:14.5px;
  }
  .info-row .label{color:var(--karashi);flex:0 0 6em;font-weight:700;}
  .info-row .value{color:#F1E9CF;text-align:right;}
  .map-block{margin-top:40px;max-width:640px;}
  .map-block .photo{aspect-ratio:16/9;}
  .map-caption{font-size:14px;color:#D8CEA4;margin-top:14px;}
  .info-note{
    margin-top:24px;font-size:13px;color:var(--sumi);
    background:var(--karashi);padding:14px 18px;
    max-width:520px;font-weight:700;
  }

  /* ---- footer ---- */
  .site-footer{background:var(--sumi);color:#E9E2CE;text-align:center;padding:56px 20px 30px;}
  .site-footer .f-logo{font-family:"Shippori Mincho","Yu Mincho",serif;font-size:23px;letter-spacing:.1em;margin-bottom:10px;color:#F6ECD6;}
  .site-footer .f-message{font-size:13.5px;color:#C9BE9E;margin-bottom:24px;}
  .sns-row{display:flex;justify-content:center;gap:20px;margin-bottom:28px;}
  .sns-row a{
    color:var(--sumi);text-decoration:none;background:var(--karashi);
    width:38px;height:38px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:700;
  }
  .made-note{
    font-size:14px;color:var(--akacha);background:#F6ECD6;
    display:inline-block;padding:10px 20px;margin-bottom:16px;
    border:2px solid var(--akacha);
  }
  .copyright{font-size:11.5px;color:#7C876E;}

  @media (min-width:860px){
    .wrap,.wrap-wide{padding:0 48px;}
    .hero .photo{aspect-ratio:21/9;min-height:640px;}
    .noren-wrap{top:20%;gap:8px;}
    .noren-panel{flex-basis:58px;width:58px;padding:20px 0 26px;}
    .noren-panel .ch{font-size:28px;}
    .hero-lower{padding:0 0 48px;}
    .hero-lower .catch{font-size:24px;}

    .about{padding:110px 0;}
    .about .wrap-wide{flex-direction:row;align-items:center;gap:64px;}
    .about .photo{flex:0 0 50%;}
    .about-text{flex:1;}
    .about h2{font-size:29px;}

    .kodawari{padding:110px 0;}
    .kodawari h2{font-size:27px;}
    .board-item{padding:26px 0;}
    .board-item .photo{flex:0 0 140px;width:140px;}

    .menu{padding:110px 0;}
    .menu h2{font-size:27px;}

    .gallery{padding:120px 0;}
    .gallery h2{font-size:27px;}
    .polaroid{width:200px;}

    .info{padding:110px 0;}
    .info h2{font-size:27px;}

    .site-footer{padding:78px 20px 36px;}
  }
