:root{
    --charcoal:#221913;
    --charcoal-2:#2c2118;
    --ember:#c1432a;
    --ember-dim:#8f3221;
    --gold:#c89b3c;
    --cream:#f1e6d8;
    --cream-dim:#cbbca8;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--charcoal);
    color:var(--cream);
    font-family:'Zen Kaku Gothic New', sans-serif;
    line-height:1.8;
  }
  h1,h2,h3{ font-family:'Zen Old Mincho', serif; font-weight:900; letter-spacing:.04em; }
  a{ color:inherit; }
  img{ max-width:100%; display:block; }

  .wrap{ max-width:960px; margin:0 auto; padding:0 24px; }

  /* ---- header / call bar ---- */
  .callbar{
    position:sticky; top:0; z-index:20;
    background:var(--charcoal-2);
    border-bottom:1px solid rgba(200,155,60,.25);
  }
  .callbar-inner{
    max-width:960px; margin:0 auto; padding:10px 24px;
    display:flex; align-items:center; justify-content:space-between;
    gap:12px;
  }
  .shopname-mini{ font-family:'Zen Old Mincho', serif; font-size:18px; letter-spacing:.08em; }
  .tel-btn{
    display:inline-flex; align-items:center; gap:8px;
    background:var(--ember); color:var(--cream);
    padding:8px 18px; border-radius:999px;
    font-size:14px; font-weight:700; text-decoration:none;
    white-space:nowrap;
  }

  /* ---- hero ---- */
  .hero{
    position:relative;
    padding:96px 24px 80px;
    text-align:center;
    background:
      radial-gradient(ellipse at 50% -10%, rgba(193,67,42,.35), transparent 60%),
      linear-gradient(var(--charcoal), var(--charcoal));
    overflow:hidden;
  }
  .hero::before{
    content:"";
    position:absolute; inset:0;
    background-image:
      repeating-linear-gradient(0deg, rgba(255,255,255,.025) 0 1px, transparent 1px 3px);
    pointer-events:none;
  }
  .hero-eyebrow{
    color:var(--gold); font-size:13px; letter-spacing:.3em;
    margin-bottom:22px; position:relative;
  }
  .hero h1{
    font-size:clamp(44px, 9vw, 84px);
    line-height:1.1;
    margin-bottom:20px;
    position:relative;
  }
  .hero p.copy{
    color:var(--cream-dim);
    font-size:17px;
    max-width:30em;
    margin:0 auto 36px;
    position:relative;
  }
  .hero-photo{
    position:relative;
    margin:0 auto;
    width:min(560px, 90%);
    aspect-ratio:4/3;
    border-radius:4px;
    background:
      linear-gradient(160deg, #3a281c, #201510 70%);
    border:1px solid rgba(200,155,60,.3);
    display:flex; align-items:center; justify-content:center;
    flex-direction:column; gap:8px;
  }
  .hero-photo span{ color:var(--cream-dim); font-size:13px; letter-spacing:.1em; }
  .hero-photo .flame{ font-size:30px; opacity:.7; }

  .cta-row{
    margin-top:32px;
    display:flex; gap:14px; justify-content:center; flex-wrap:wrap;
    position:relative;
  }
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    padding:14px 30px; border-radius:999px;
    font-size:15px; font-weight:700; text-decoration:none;
  }
  .btn-primary{ background:var(--ember); color:var(--cream); }
  .btn-ghost{ border:1px solid rgba(241,230,216,.4); color:var(--cream); }

  /* ---- section shell ---- */
  section{ padding:76px 0; }
  .section-head{ text-align:center; margin-bottom:48px; }
  .section-head .kicker{ color:var(--gold); font-size:13px; letter-spacing:.25em; display:block; margin-bottom:14px; }
  .section-head h2{ font-size:clamp(28px,5vw,38px); }

  /* ---- features ---- */
  .features{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:1px;
    background:rgba(200,155,60,.25);
    border:1px solid rgba(200,155,60,.25);
  }
  .feature{
    background:var(--charcoal);
    padding:36px 22px;
    text-align:center;
  }
  .feature .num{ color:var(--ember); font-family:'Zen Old Mincho',serif; font-size:26px; display:block; margin-bottom:14px; }
  .feature h3{ font-size:17px; margin-bottom:10px; }
  .feature p{ color:var(--cream-dim); font-size:14px; }

  /* ---- gallery ---- */
  .gallery-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:10px;
  }
  .ph{
    aspect-ratio:1;
    border-radius:3px;
    background:linear-gradient(155deg,#3a281c,#1c130e 75%);
    border:1px solid rgba(200,155,60,.22);
    display:flex; align-items:center; justify-content:center;
    color:var(--cream-dim); font-size:12px; letter-spacing:.08em;
  }

  /* ---- about / kodawari text block ---- */
  .about{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:56px;
    align-items:center;
  }
  .about .ph{ aspect-ratio:4/3; }
  .about h2{ font-size:28px; margin-bottom:20px; }
  .about p{ color:var(--cream-dim); }

  /* ---- info ---- */
  .info-card{
    background:var(--charcoal-2);
    border:1px solid rgba(200,155,60,.25);
    border-radius:6px;
    padding:44px;
  }
  .info-row{
    display:flex; gap:24px;
    padding:18px 0;
    border-bottom:1px solid rgba(241,230,216,.1);
  }
  .info-row:last-child{ border-bottom:none; }
  .info-label{ width:96px; flex-shrink:0; color:var(--gold); font-size:14px; letter-spacing:.08em; }
  .info-value{ color:var(--cream); font-size:15px; }
  .info-value small{ color:var(--cream-dim); display:block; margin-top:4px; }

  .map-embed{
    margin-top:28px;
    width:100%;
    aspect-ratio:16/6;
    border-radius:4px;
    border:1px solid rgba(200,155,60,.35);
    filter:grayscale(.25) contrast(1.05);
  }

  /* ---- footer cta ---- */
  .footer-cta{
    text-align:center;
    padding:90px 24px 100px;
    background:linear-gradient(180deg, var(--charcoal), var(--charcoal-2));
  }
  .footer-cta h2{ font-size:clamp(30px,6vw,44px); margin-bottom:18px; }
  .footer-cta p{ color:var(--cream-dim); margin-bottom:34px; }

  footer{
    padding:32px 24px;
    text-align:center;
    color:var(--cream-dim);
    font-size:12px;
    border-top:1px solid rgba(200,155,60,.15);
  }

  @media (max-width:720px){
    .features{ grid-template-columns:1fr 1fr; }
    .about{ grid-template-columns:1fr; gap:28px; }
    .gallery-grid{ grid-template-columns:repeat(2,1fr); }
    .info-row{ flex-direction:column; gap:4px; }
  }
