
  :root{
    --ink:#241A20;
    --white:#FFFFFF;
    --blush:#FFF8FB;
    --pink:#E8137B;
    --pink-deep:#B80F62;
    --pink-soft:#FBD9EA;
    --gold:#B08A3E;
    --line:#F0DCE8;
    --max:1180px;
  }

  *{box-sizing:border-box;margin:0;padding:0;}

  html{scroll-behavior:smooth;}

  body{
    font-family:'Zen Kaku Gothic New', sans-serif;
    color:var(--ink);
    background:var(--white);
    line-height:1.85;
    font-size:16.5px;
    -webkit-font-smoothing:antialiased;
  }

  img,svg{display:block;max-width:100%;}

  a{color:inherit;text-decoration:none;}

  .serif{font-family:'Shippori Mincho', serif;}
  .en{font-family:'Cormorant Garamond', serif;}

  .wrap{max-width:var(--max);margin:0 auto;padding:0 32px;}

  /* ---------- placeholder photo blocks ---------- */
  .photo{
    position:relative;
    background:linear-gradient(135deg,#2b1f26 0%,#4a2a3c 50%,#241820 100%);
    display:flex;align-items:center;justify-content:center;
    color:rgba(255,255,255,.55);
    overflow:hidden;
  }
  .photo::before{
    content:'';position:absolute;inset:0;
    background:
      repeating-linear-gradient(45deg,rgba(255,255,255,.03) 0 2px,transparent 2px 14px);
  }
  .photo:has(img,iframe)::before{content:none;} /* 実写真・地図が入ったらプレースホルダー柄は非表示 */
  .photo img,.photo iframe{
    position:absolute;inset:0;
    width:100%;height:100%;
    object-fit:cover;object-position:center;
    border:0;
  }
  .photo span{
    position:relative;z-index:1;
    font-size:13px;letter-spacing:.08em;
    border:1px solid rgba(255,255,255,.35);
    padding:6px 16px;border-radius:2px;
    font-family:'Zen Kaku Gothic New',sans-serif;
  }

  /* ---------- header ---------- */
  header{
    position:sticky;top:0;z-index:50;
    background:rgba(255,255,255,.96);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
  }
  .header-top{
    display:flex;align-items:center;justify-content:space-between;
    padding:18px 32px 14px;max-width:var(--max);margin:0 auto;
  }
  .logo{display:flex;align-items:center;gap:10px;}
  .logo .mark{
    font-family:'Cormorant Garamond',serif;
    font-style:italic;font-size:34px;color:var(--pink);
    letter-spacing:.01em;
  }
  .logo .mark img{height:56px;width:auto;display:block;}
  .logo .sub{font-size:11px;letter-spacing:.25em;color:var(--ink);opacity:.65;}

  .contact-info{text-align:right;font-size:13px;color:var(--ink);}
  .contact-info .tel{
    font-family:'Cormorant Garamond',serif;font-size:22px;color:var(--pink-deep);font-weight:500;
  }
  .contact-info .tel a{border-bottom:none;}

  nav{border-top:1px solid var(--line);}
  .nav-inner{
    max-width:var(--max);margin:0 auto;padding:0 32px;
    display:flex;gap:36px;
  }
  nav a{
    display:inline-block;padding:16px 0;font-size:16px;letter-spacing:.04em;
    position:relative;color:var(--ink);
  }
  nav a::after{
    content:'';position:absolute;left:0;right:0;bottom:0;height:2px;
    background:var(--pink);transform:scaleX(0);transform-origin:left;
    transition:transform .25s ease;
  }
  nav a:hover::after, nav a.active::after{transform:scaleX(1);}
  nav a.active{color:var(--pink-deep);}

  .menu-toggle{display:none;background:none;border:none;font-size:22px;padding:14px 0;cursor:pointer;color:var(--ink);}

  /* ---------- hero ---------- */
  .hero{
    height:min(78vh,640px);min-height:440px;
    position:relative;
  }
  .hero .photo{position:absolute;inset:0;}
  .hero-overlay{
    position:absolute;inset:0;
    background:linear-gradient(180deg,rgba(20,10,16,.15) 0%,rgba(20,10,16,.55) 100%);
  }
  .hero-content{
    position:relative;z-index:2;height:100%;
    display:flex;flex-direction:column;justify-content:flex-end;
    padding:0 32px 64px;max-width:var(--max);margin:0 auto;
    color:#fff;
  }
  .hero-content .eyebrow{
    font-family:'Cormorant Garamond',serif;font-style:italic;
    font-size:20px;letter-spacing:.06em;color:var(--pink-soft);margin-bottom:14px;
  }
  .hero-content h1{
    font-family:'Shippori Mincho',serif;
    font-size:clamp(28px,4.4vw,46px);
    font-weight:600;line-height:1.5;margin-bottom:28px;
    max-width:640px;
  }
  .hero-actions{display:flex;gap:16px;flex-wrap:wrap;}
  .btn{
    display:inline-block;padding:14px 30px;font-size:14px;letter-spacing:.05em;
    border-radius:2px;transition:all .2s ease;
  }
  .btn-primary{background:var(--pink);color:#fff;}
  .btn-primary:hover{background:var(--pink-deep);}
  .btn-outline{border:1px solid rgba(255,255,255,.7);color:#fff;}
  .btn-outline:hover{background:rgba(255,255,255,.12);}

  /* ---------- section shared ---------- */
  section{padding:96px 0;}
  .section-head{margin-bottom:48px;}
  .section-head .tag{
    font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--pink);
    font-size:15px;margin-bottom:8px;display:block;
  }
  .section-head h1,.section-head h2{
    font-family:'Shippori Mincho',serif;font-size:clamp(22px,3vw,30px);font-weight:600;
  }
  .section-head p.lead{margin-top:14px;max-width:56ch;color:#5a4a52;font-size:16.5px;}

  /* concept */
  .concept{background:var(--blush);}
  .concept-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
  .concept-grid .photo{aspect-ratio:4/5;border-radius:2px;}
  .concept-text p{color:#4d3d45;font-size:16.5px;margin-bottom:16px;max-width:48ch;}
  .concept-text .signature{
    font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--pink-deep);
    font-size:18px;margin-top:24px;
  }

  /* news */
  .news-list{border-top:1px solid var(--line);}
  .news-item{
    display:flex;gap:28px;padding:22px 0;border-bottom:1px solid var(--line);
    font-size:16px;align-items:baseline;
  }
  .news-item .date{
    font-family:'Cormorant Garamond',serif;color:var(--pink-deep);min-width:110px;font-size:15px;
  }
  .news-item a:hover{color:var(--pink-deep);}
  .news-more{display:inline-block;margin-top:28px;font-size:13.5px;letter-spacing:.05em;border-bottom:1px solid var(--ink);padding-bottom:2px;}

  /* interior */
  .interior-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:14px;height:520px;}
  .interior-grid .photo:nth-child(1){grid-row:1/3;}
  .interior-grid .photo{border-radius:2px;}
  .interior-foot{display:flex;justify-content:space-between;align-items:center;margin-top:32px;}

  /* menu / food spotlight — bolder moment */
  .food{
    background:var(--ink);color:#fff;
  }
  .food-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch;}
  .food .photo{min-height:460px;}
  .food-text{display:flex;flex-direction:column;justify-content:center;align-items:flex-end;padding:56px 64px;}
  .food-copy{max-width:420px;}
  .food-text .tag{color:var(--pink-soft);}
  .food-text h2{color:#fff;}
  .food-text p{color:rgba(255,255,255,.75);font-size:15px;margin:18px 0 28px;}

  /* access */
  .access-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;}
  .access-info dl{font-size:16px;}
  .access-info dt{color:var(--pink-deep);font-size:13.5px;letter-spacing:.08em;margin-top:22px;}
  .access-info dt:first-child{margin-top:0;}
  .access-info dd{margin-top:6px;color:#3d323a;}
  .access-info .tel-big{font-family:'Cormorant Garamond',serif;font-size:26px;color:var(--pink-deep);}
  .access-grid .photo{aspect-ratio:1/1;border-radius:2px;}

  /* recruit / contact strip */
  .strip{background:var(--pink-soft);}
  .strip-grid{display:flex;justify-content:center;padding:80px 0;}
  .strip-card{background:var(--white);padding:48px;max-width:420px;width:100%;}
  .strip-copy{max-width:340px;}
  .strip-copy h3{font-family:'Shippori Mincho',serif;font-size:19px;margin-bottom:10px;}
  .strip-copy p{font-size:15.5px;color:#5a4a52;margin-bottom:18px;}
  .strip-copy .link{font-size:14.5px;border-bottom:1px solid var(--pink-deep);color:var(--pink-deep);padding-bottom:2px;}

  /* footer */
  footer{background:var(--ink);color:rgba(255,255,255,.7);padding:64px 0 32px;font-size:13.5px;}
  .foot-grid{display:flex;justify-content:space-between;flex-wrap:wrap;gap:40px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.12);}
  .foot-logo .mark{font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--pink);font-size:26px;}
  .foot-logo p{margin-top:10px;color:rgba(255,255,255,.5);max-width:32ch;}
  .foot-nav{display:flex;gap:32px;flex-wrap:wrap;}
  .foot-nav a:hover{color:#fff;}
  .foot-bottom{padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;color:rgba(255,255,255,.4);font-size:12px;}
  .foot-legal:hover{color:#fff;}

  /* fade-in reveal for photos as they enter view */
  .reveal{
    opacity:0;transform:translateY(26px);
    transition:opacity .9s ease, transform .9s ease;
  }
  .reveal.in-view{opacity:1;transform:translateY(0);}
  @media (prefers-reduced-motion:reduce){
    .reveal{transition:none;opacity:1;transform:none;}
  }

  /* floating reserve button (mobile emphasis) */
  .fab{
    position:fixed;right:20px;bottom:20px;z-index:60;
    background:var(--pink);color:#fff;padding:14px 22px;border-radius:999px;
    font-size:13.5px;letter-spacing:.03em;box-shadow:0 8px 20px rgba(232,19,123,.35);
    display:none;
  }

  /* ---------- subpage: page hero (shorter than home hero) ---------- */
  .page-hero{height:min(46vh,360px);min-height:260px;position:relative;}
  .page-hero .photo{position:absolute;inset:0;}
  .page-hero-content{
    position:relative;z-index:2;height:100%;
    display:flex;flex-direction:column;justify-content:flex-end;
    padding:0 32px 40px;max-width:var(--max);margin:0 auto;
    color:#fff;
  }
  .page-hero-content .eyebrow{
    font-family:'Cormorant Garamond',serif;font-style:italic;
    font-size:18px;letter-spacing:.06em;color:var(--pink-soft);margin-bottom:12px;
  }
  .page-hero-content h1{
    font-family:'Shippori Mincho',serif;
    font-size:clamp(26px,4vw,38px);font-weight:600;
  }

  /* ---------- subpage: breadcrumb ---------- */
  .breadcrumb{
    max-width:var(--max);margin:0 auto;padding:18px 32px;
    font-size:12.5px;letter-spacing:.03em;color:#8a7078;
  }
  .breadcrumb a{color:#8a7078;border-bottom:1px solid transparent;}
  .breadcrumb a:hover{border-bottom-color:#8a7078;}
  .breadcrumb .sep{margin:0 8px;opacity:.5;}
  .breadcrumb .current{color:var(--ink);}

  /* ---------- subpage: photo gallery ---------- */
  .gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px 28px;}
  .gallery-item .photo{aspect-ratio:4/3;border-radius:2px;}
  .gallery-cap{margin-top:12px;font-size:13.5px;color:#5a4a52;letter-spacing:.02em;}

  /* ---------- subpage: single framed image (event calendar, etc.) ---------- */
  .framed-image{max-width:600px;margin:0 auto;}
  .framed-image img{width:100%;height:auto;display:block;border-radius:2px;box-shadow:0 10px 30px rgba(36,26,32,.12);}
  .framed-caption{text-align:center;margin-top:20px;color:#5a4a52;font-size:14.5px;}

  /* ---------- subpage: text content (recruit, privacy-policy, etc.) ---------- */
  .text-page{max-width:720px;}
  .text-page h3{font-family:'Shippori Mincho',serif;font-size:18px;font-weight:600;margin:40px 0 12px;}
  .text-page h3:first-child{margin-top:0;}
  .text-page p{margin-bottom:14px;color:#3d323a;}
  .spec-list{font-size:16px;margin-top:8px;}
  .spec-list dt{color:var(--pink-deep);font-size:13.5px;letter-spacing:.08em;margin-top:22px;}
  .spec-list dt:first-child{margin-top:0;}
  .spec-list dd{margin-top:6px;color:#3d323a;}
  .note-box{background:var(--blush);border-left:3px solid var(--pink);padding:28px 32px;margin-top:40px;border-radius:0 2px 2px 0;}
  .note-box .note-label{
    font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--pink-deep);
    font-size:15px;margin-bottom:12px;display:block;
  }
  .note-box p{margin-bottom:14px;color:#3d323a;}
  .note-box p:last-child{margin-bottom:0;}

  /* ---------- subpage: menu — featured dish (section 1) ---------- */
  .feature-dish{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
  .feature-dish .photo{aspect-ratio:4/3;border-radius:2px;}
  .feature-dish-copy .tag{margin-bottom:14px;}
  .feature-dish-copy h3{font-family:'Shippori Mincho',serif;font-size:24px;font-weight:600;margin-bottom:12px;}
  .feature-dish-copy .price{
    font-family:'Cormorant Garamond',serif;color:var(--pink-deep);
    font-size:20px;margin-bottom:14px;display:block;
  }
  .feature-dish-copy p{color:#5a4a52;font-size:15px;line-height:1.9;}

  /* ---------- subpage: menu — rotating dish cards (section 2) ---------- */
  .dish-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:8px;}
  .dish-card .photo{aspect-ratio:1/1;border-radius:2px;}
  .dish-card h4{font-family:'Shippori Mincho',serif;font-size:15.5px;font-weight:600;margin-top:14px;}
  .dish-card p{
    margin-top:6px;font-size:13px;color:#5a4a52;line-height:1.7;
    display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
  }

  /* ---------- subpage: menu — drink price list (section 3) ---------- */
  .price-group{margin-bottom:30px;}
  .price-group h4{
    font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--pink-deep);
    font-size:15px;letter-spacing:.04em;margin-bottom:10px;
    border-bottom:1px solid rgba(36,26,32,.12);padding-bottom:8px;
  }
  .price-row{display:flex;justify-content:space-between;gap:16px;padding:7px 0;font-size:14.5px;color:#3d323a;}
  .price-row .type{color:var(--pink-deep);font-size:12px;margin-right:8px;}
  .price-row .price{white-space:nowrap;color:#5a4a52;}
  .price-note{font-size:13.5px;color:#5a4a52;line-height:1.8;}

  /* ---------- subpage: sitemap ---------- */
  .sitemap-list{list-style:none;padding:0;max-width:560px;}
  .sitemap-list li{border-bottom:1px solid rgba(36,26,32,.1);}
  .sitemap-list a{
    display:flex;justify-content:space-between;align-items:baseline;
    padding:20px 4px;color:var(--ink);
  }
  .sitemap-list a:hover{color:var(--pink-deep);}
  .sitemap-list .ja{font-size:16px;}
  .sitemap-list .desc{
    display:block;margin-top:4px;font-size:13px;color:#8a7078;font-weight:400;
  }
  .sitemap-list .en{
    font-family:'Cormorant Garamond',serif;font-style:italic;color:#8a7078;font-size:13px;
  }

  /* ---------- responsive ---------- */
  @media (max-width:860px){
    .concept-grid, .food-grid, .access-grid{grid-template-columns:1fr;}
    .food .photo{min-height:280px;order:-1;}
    .food-text{padding:44px 28px;align-items:flex-start;}
    .food-copy{max-width:none;}
    .interior-grid{grid-template-columns:1fr 1fr;height:auto;}
    .interior-grid .photo{height:180px;}
    .interior-grid .photo:nth-child(1){grid-column:1/3;height:220px;grid-row:auto;}
    .strip-grid{padding:56px 0;}
    .strip-card{padding:36px 32px;}
    .gallery-grid{grid-template-columns:repeat(2,1fr);}
    .feature-dish{grid-template-columns:1fr;gap:28px;}
    .dish-grid{grid-template-columns:repeat(2,1fr);}
    .fab{display:block;}
  }

  @media (max-width:720px){
    .header-top{padding:14px 20px;}
    .logo .mark{font-size:26px;}
    .contact-info{font-size:11.5px;}
    .contact-info .tel{font-size:17px;}
    .nav-inner{padding:0;flex-direction:column;gap:0;max-height:0;overflow:hidden;transition:max-height .3s ease;}
    .nav-inner.open{max-height:400px;}
    nav a{padding:14px 20px;width:100%;}
    nav a::after{display:none;}
    nav a.active{background:var(--blush);}
    .menu-toggle{display:block;position:absolute;right:20px;top:14px;}
    nav{position:relative;}
    .wrap{padding:0 20px;}
    section{padding:64px 0;}
    .hero-content{padding:0 20px 44px;}
    .page-hero-content{padding:0 20px 32px;}
    .gallery-grid{grid-template-columns:1fr;}
    .dish-grid{grid-template-columns:1fr;}
  }
