  :root{
    --ink:#121110;
    --ink-soft:#2b2825;
    --paper:#f7f5f1;
    --white:#ffffff;
    --gray:#8a847b;
    --gray-light:#b9b3a9;
    --line:rgba(18,17,16,0.14);
    --line-soft:rgba(18,17,16,0.07);
    --line-dark:rgba(255,255,255,0.2);
    --serif:"Shippori Mincho B1","Noto Serif JP",serif;
    --sans:"Noto Sans JP",sans-serif;
    --en:"Cormorant Garamond",serif;
    --ease:cubic-bezier(.22,.61,.36,1);
  }
  html[lang="en"]{--serif:"Cormorant Garamond","Shippori Mincho B1",serif}
  html[lang="en"] .chef-name .en{display:none}
  html[lang="ko"]{--serif:"Noto Serif KR","Shippori Mincho B1",serif;--sans:"Noto Sans KR","Noto Sans JP",sans-serif}
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{
    font-family:var(--sans);color:var(--ink);background:var(--paper);
    line-height:2;font-weight:300;font-size:15px;
    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
    overflow-x:hidden;
  }
  img{display:block;max-width:100%}
  a{color:inherit;text-decoration:none}
  .wrap{max-width:1280px;margin:0 auto;padding:0 clamp(1.5rem,6vw,5.5rem)}

  .eyebrow{
    display:flex;align-items:center;gap:1.1rem;
    font-family:var(--en);font-size:.85rem;letter-spacing:.4em;
    text-transform:uppercase;color:var(--gray);font-weight:500;
  }
  .eyebrow::before{content:"";width:2.6rem;height:1px;background:var(--gray-light)}

  .reveal{opacity:0;transform:translateY(26px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
  .reveal.in{opacity:1;transform:none}

  /* ================= header ================= */
  header{
    position:fixed;top:0;left:0;right:0;z-index:50;
    display:flex;align-items:center;justify-content:space-between;
    padding:1.7rem clamp(1.5rem,5vw,4.5rem);
    color:var(--white);
    transition:background .5s var(--ease),color .5s var(--ease),padding .5s var(--ease);
  }
  header.solid{
    background:rgba(247,245,241,.9);
    -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
    color:var(--ink);padding-top:1rem;padding-bottom:1rem;
    border-bottom:1px solid var(--line-soft);
  }
  .brand{font-family:var(--en);font-size:1.55rem;font-weight:500;line-height:1;letter-spacing:.03em}
  .brand small{
    display:block;font-family:var(--sans);font-size:.48rem;letter-spacing:.5em;
    font-weight:400;text-transform:uppercase;margin-top:.4rem;opacity:.75;
  }
  nav{display:flex;align-items:center;gap:clamp(1.2rem,2.5vw,2.8rem)}
  .nav-links{display:flex;align-items:center;gap:clamp(1.2rem,2.2vw,2.4rem)}
  nav a{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;font-weight:400;transition:opacity .3s}
  nav a:hover{opacity:.5}
  .lang{display:flex;align-items:center;gap:.9rem}
  .lang button{
    background:none;border:none;color:inherit;font-family:var(--sans);
    font-size:.7rem;letter-spacing:.15em;cursor:pointer;padding:0;
    opacity:.42;transition:opacity .3s;
  }
  .lang button.on{opacity:1;font-weight:500;border-bottom:1px solid currentColor;padding-bottom:2px}
  .lang button:hover{opacity:.8}
  .nav-toggle{display:none;background:none;border:none;color:inherit;cursor:pointer;
    width:32px;height:22px;position:relative;z-index:80;padding:0}
  .nav-toggle span{position:absolute;left:0;right:0;height:1.5px;background:currentColor;transition:.35s var(--ease)}
  .nav-toggle span:nth-child(1){top:3px}
  .nav-toggle span:nth-child(2){top:10px}
  .nav-toggle span:nth-child(3){top:17px}
  .nav-toggle.open span:nth-child(1){top:10px;transform:rotate(45deg)}
  .nav-toggle.open span:nth-child(2){opacity:0}
  .nav-toggle.open span:nth-child(3){top:10px;transform:rotate(-45deg)}
  @media(max-width:900px){
    .nav-toggle{display:block}
    header.menu-open{color:#fff}
    .nav-links{
      position:fixed;inset:0;background:var(--ink);flex-direction:column;
      justify-content:center;gap:2.6rem;transform:translateX(100%);
      transition:transform .55s var(--ease);z-index:70;
    }
    .nav-links.open{transform:none}
    .nav-links a{color:#fff;font-size:1rem;letter-spacing:.28em}
    .lang{gap:.7rem}
  }

  /* ================= hero ================= */
  .hero{
    position:relative;height:100vh;min-height:660px;
    display:flex;align-items:center;color:var(--white);overflow:hidden;
    background:var(--ink);
  }
  .hero-slides{position:absolute;inset:0}
  .slide{
    position:absolute;inset:0;background-size:cover;background-position:center;
    opacity:0;
    filter:brightness(.72) contrast(1.03);
    transform:scale(1.06);
    transition:opacity 1.8s var(--ease),transform 9s linear;
  }
  .slide.on{opacity:1;transform:scale(1)}
  .hero::after{
    content:"";position:absolute;inset:0;
    background:linear-gradient(88deg,rgba(10,9,8,.78) 0%,rgba(10,9,8,.42) 44%,rgba(10,9,8,.08) 78%),
               linear-gradient(0deg,rgba(10,9,8,.55) 0%,transparent 26%);
    pointer-events:none;
  }
  .hero .wrap{position:relative;z-index:2;width:100%}
  .hero .label{
    font-family:var(--en);font-size:.88rem;letter-spacing:.36em;text-transform:uppercase;
    font-weight:400;opacity:.88;margin-bottom:clamp(1.8rem,3.5vh,3rem);
  }
  .hero h1{
    font-family:var(--serif);font-weight:400;
    font-size:clamp(2.7rem,6.8vw,5.6rem);line-height:1.28;letter-spacing:.06em;
    margin-bottom:clamp(1.6rem,3vh,2.4rem);
  }
  .hero .sub{
    font-size:clamp(.9rem,1.25vw,1rem);line-height:2.3;letter-spacing:.05em;
    max-width:33em;color:rgba(255,255,255,.88);
  }
  .hero-cta{display:flex;gap:1rem;margin-top:clamp(2.4rem,5vh,3.6rem);flex-wrap:wrap}
  .btn{
    display:inline-flex;align-items:center;gap:1.2rem;
    font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;font-weight:400;
    padding:1.05rem 2.1rem;border:1px solid var(--line-dark);transition:.45s var(--ease);
  }
  .btn .ar{transition:transform .45s var(--ease)}
  .btn:hover .ar{transform:translateX(7px)}
  .btn.solid{background:var(--white);color:var(--ink);border-color:var(--white)}
  .btn.solid:hover{background:transparent;color:var(--white)}
  .btn.ghost:hover{background:rgba(255,255,255,.09)}

  .hero-tabs{
    position:absolute;z-index:3;right:clamp(1.5rem,5vw,4.5rem);bottom:3rem;
    display:flex;gap:clamp(1.2rem,2.4vw,2.6rem);
  }
  .hero-tabs button{
    background:none;border:none;cursor:pointer;color:rgba(255,255,255,.5);
    font-family:var(--sans);font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;
    padding:.4rem 0;position:relative;transition:color .5s;
  }
  .hero-tabs button::after{
    content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;
    background:var(--white);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease);
  }
  .hero-tabs button.on{color:var(--white)}
  .hero-tabs button.on::after{transform:scaleX(1)}
  .scroll-cue{
    position:absolute;z-index:3;bottom:0;left:clamp(1.5rem,5vw,4.5rem);
    display:flex;flex-direction:column;align-items:center;gap:.9rem;
    font-family:var(--en);font-size:.68rem;letter-spacing:.32em;text-transform:uppercase;
    color:rgba(255,255,255,.75);
  }
  .scroll-cue::after{
    content:"";width:1px;height:64px;background:linear-gradient(rgba(255,255,255,.7),transparent);
    animation:cue 2.6s var(--ease) infinite;
  }
  @keyframes cue{0%{transform:scaleY(.15);transform-origin:top;opacity:.2}50%{transform:scaleY(1);opacity:1}100%{transform:scaleY(.15);transform-origin:bottom;opacity:.2}}
  @media(max-width:760px){
    .hero-tabs{right:auto;left:1.5rem;bottom:3.6rem;gap:1.1rem}
    .scroll-cue{display:none}
  }

  /* ================= common section ================= */
  .block{padding:clamp(6.5rem,14vw,13rem) 0}
  .block.tight{padding:clamp(4.5rem,9vw,8rem) 0}
  .sec-head{margin-bottom:clamp(3.5rem,7vw,6.5rem)}
  .sec-head .eyebrow{margin-bottom:2rem}
  h2.sec-title{
    font-family:var(--serif);font-weight:400;
    font-size:clamp(1.6rem,3.4vw,2.7rem);line-height:1.7;letter-spacing:.06em;
  }
  .lead{
    color:var(--ink-soft);font-size:.95rem;line-height:2.35;letter-spacing:.04em;
    margin-top:1.8rem;max-width:38em;
  }

  /* ================= philosophy ================= */
  .philosophy{background:var(--white)}
  .philosophy .big{
    font-family:var(--serif);font-weight:400;
    font-size:clamp(1.5rem,3.2vw,2.5rem);line-height:2;letter-spacing:.07em;
    margin-bottom:clamp(3.5rem,7vw,6rem);
  }
  .phi-list{border-bottom:1px solid var(--line)}
  .phi-row{
    display:grid;grid-template-columns:1fr 1.5fr;gap:clamp(2rem,5vw,5.5rem);
    padding:clamp(2.8rem,5.5vw,4.2rem) 0;border-top:1px solid var(--line);align-items:start;
  }
  .phi-label{
    display:block;font-family:var(--en);font-size:.78rem;font-weight:500;
    letter-spacing:.3em;text-transform:uppercase;color:var(--gray);margin-bottom:1.3rem;
  }
  .phi-row h3{
    font-family:var(--serif);font-weight:500;
    font-size:clamp(1.25rem,2.2vw,1.7rem);line-height:1.9;letter-spacing:.06em;
  }
  .phi-row>p{color:var(--ink-soft);line-height:2.35;font-size:.95rem;letter-spacing:.03em;max-width:36em}
  .philosophy .close{
    font-family:var(--serif);margin-top:clamp(3.5rem,7vw,6rem);
    font-size:clamp(1.05rem,1.8vw,1.35rem);line-height:2.2;letter-spacing:.06em;
  }
  @media(max-width:760px){
    .phi-row{grid-template-columns:1fr;gap:1.4rem}
    .philosophy .big br{display:none}
  }

  /* ================= service ================= */
  .service .row{
    display:grid;grid-template-columns:6rem 1.1fr 1fr;gap:clamp(1.5rem,4vw,4.5rem);
    padding:clamp(2.4rem,4.5vw,3.6rem) 0;border-top:1px solid var(--line);
    align-items:baseline;transition:background .4s;
  }
  .service .row:last-of-type{border-bottom:1px solid var(--line)}
  .service .num{font-family:var(--en);font-size:1.5rem;font-weight:400;color:var(--gray-light)}
  .service .name{font-family:var(--serif);font-weight:500;font-size:clamp(1.1rem,1.8vw,1.4rem);line-height:1.7;letter-spacing:.05em}
  .service .name .en{
    display:block;font-family:var(--en);font-size:.78rem;font-weight:500;
    letter-spacing:.3em;text-transform:uppercase;color:var(--gray);margin-top:.8rem;
  }
  .service .desc{color:var(--ink-soft);font-size:.87rem;line-height:2.2;letter-spacing:.03em}
  .service .desc span{display:block}
  .service .desc span::before{content:"— ";color:var(--gray-light)}
  @media(max-width:760px){
    .service .row{grid-template-columns:3.2rem 1fr;gap:1rem 1.2rem}
    .service .desc{grid-column:2}
  }

  /* ================= brands ================= */
  .brands{background:var(--ink);color:var(--white)}
  .brands .eyebrow{color:var(--gray-light)}
  .brands .eyebrow::before{background:rgba(255,255,255,.3)}
  .brand-item{
    display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(2.5rem,6vw,6.5rem);
    align-items:center;padding:clamp(4rem,8vw,7.5rem) 0;
    border-top:1px solid var(--line-dark);
  }
  .brand-item:nth-child(even) .brand-media{order:2}
  .brand-media{overflow:hidden}
  .brand-media img{
    width:100%;aspect-ratio:16/11;object-fit:cover;
    transition:transform 1.6s var(--ease);
  }
  .brand-item:hover .brand-media img{transform:scale(1.045)}
  .brand-idx{font-family:var(--en);font-size:.9rem;letter-spacing:.2em;color:var(--gray-light);margin-bottom:1.6rem}
  .brand-cat{font-family:var(--en);font-size:.8rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gray-light);margin-bottom:1.2rem}
  .brand-name{font-family:var(--serif);font-weight:400;font-size:clamp(1.6rem,3vw,2.3rem);letter-spacing:.07em;line-height:1.6;margin-bottom:1.3rem}
  .brand-catch{
    font-family:var(--serif);color:rgba(255,255,255,.92);font-size:1.02rem;
    line-height:2;letter-spacing:.06em;max-width:24em;margin-bottom:1.1rem;
  }
  .brand-desc{color:rgba(255,255,255,.6);font-size:.84rem;line-height:2.15;letter-spacing:.03em;max-width:27em;margin-bottom:2.2rem}
  .brand-links{display:flex;flex-wrap:wrap;gap:.7rem}
  .brand-links a{
    font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;
    padding:.65rem 1.3rem;border:1px solid var(--line-dark);transition:.4s var(--ease);
  }
  .brand-links a:hover{background:var(--white);color:var(--ink);border-color:var(--white)}
  .brand-item.soon .brand-media img{filter:brightness(.85)}
  .badge-soon{
    font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gray-light);
    border:1px solid var(--line-dark);padding:.55rem 1.2rem;display:inline-block;
  }
  @media(max-width:760px){
    .brand-item{grid-template-columns:1fr;gap:1.8rem}
    .brand-item:nth-child(even) .brand-media{order:0}
    .brand-media{margin:0 -1.5rem}
  }

  /* ================= produce ================= */
  .produce{background:var(--white);text-align:center}
  .produce .eyebrow{justify-content:center;margin-bottom:2rem}
  .produce .eyebrow::before{display:none}
  .produce p{
    font-family:var(--serif);font-weight:400;
    font-size:clamp(1.2rem,2.4vw,1.8rem);line-height:2.1;letter-spacing:.07em;
    margin-bottom:2.8rem;
  }
  .link-under{
    font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;
    border-bottom:1px solid var(--ink);padding-bottom:.45rem;
    display:inline-flex;gap:.8rem;transition:gap .4s var(--ease),opacity .3s;
  }
  .link-under:hover{gap:1.4rem;opacity:.6}

  /* ================= news ================= */
  .news .n-item{
    display:grid;grid-template-columns:9rem 9rem 1fr;gap:clamp(1rem,3vw,3rem);
    padding:clamp(1.9rem,3.2vw,2.7rem) 0;border-top:1px solid var(--line);align-items:baseline;
  }
  .news .n-item:last-of-type{border-bottom:1px solid var(--line)}
  .news .n-date{font-family:var(--en);font-size:.95rem;letter-spacing:.08em;color:var(--gray)}
  .news .n-cat{
    font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;
    border:1px solid var(--line);padding:.35rem .9rem;justify-self:start;color:var(--ink-soft);
  }
  .news .n-body{color:var(--ink-soft);font-size:.9rem;line-height:2.1;letter-spacing:.03em}
  .news-more{margin-top:clamp(2.6rem,4.5vw,3.8rem)}
  @media(max-width:680px){.news .n-item{grid-template-columns:1fr;gap:.6rem}}

  /* ================= about ================= */
  .about{background:var(--white)}
  .chef{
    display:grid;grid-template-columns:1fr 1.25fr;gap:clamp(2.5rem,6vw,6.5rem);
    align-items:center;margin-bottom:clamp(4.5rem,9vw,8rem);
  }
  .chef-media{overflow:hidden}
  .chef-media img{width:100%;aspect-ratio:3/4;object-fit:cover}
  .chef-role{font-family:var(--en);font-size:.78rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gray);margin-bottom:1.4rem}
  .chef-name{font-family:var(--serif);font-weight:500;font-size:clamp(1.6rem,2.8vw,2.2rem);letter-spacing:.08em}
  .chef-name .en{font-family:var(--en);font-size:.95rem;font-weight:400;letter-spacing:.16em;color:var(--gray);display:block;margin-top:.6rem}
  .chef-bio{color:var(--ink-soft);line-height:2.35;font-size:.92rem;letter-spacing:.03em;margin:2rem 0}
  .michelin{
    display:inline-flex;align-items:center;gap:.8rem;font-family:var(--en);
    font-size:.85rem;letter-spacing:.16em;border-top:1px solid var(--line);padding-top:1.4rem;
  }
  .company{border-top:1px solid var(--line)}
  .company .c-row{display:grid;grid-template-columns:11rem 1fr;gap:2rem;padding:1.5rem 0;border-bottom:1px solid var(--line-soft)}
  .company .c-key{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gray);padding-top:.35rem}
  .company .c-val{color:var(--ink-soft);font-size:.92rem;line-height:2;letter-spacing:.03em}
  @media(max-width:760px){
    .chef{grid-template-columns:1fr}
    .chef-media{max-width:24rem}
    .company .c-row{grid-template-columns:1fr;gap:.3rem}
  }

  /* ================= recruit ================= */
  .recruit .inner{
    display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap;
    border-top:1px solid var(--line);border-bottom:1px solid var(--line);
    padding:clamp(2.4rem,4.5vw,3.4rem) 0;
  }
  .recruit .r-txt .eyebrow{margin-bottom:1.2rem}
  .recruit .r-txt p{font-family:var(--serif);font-weight:400;font-size:clamp(1.1rem,2vw,1.5rem);letter-spacing:.06em;line-height:1.9}

  /* ================= contact ================= */
  .contact{background:var(--ink);color:var(--white);text-align:center;position:relative;overflow:hidden}
  .contact .bg{position:absolute;inset:0;background-size:cover;background-position:center;
    filter:brightness(.3);opacity:.5}
  .contact .wrap{position:relative;z-index:2}
  .contact h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.9rem,4.2vw,3.2rem);line-height:1.8;letter-spacing:.08em;margin-bottom:2rem}
  .contact p{color:rgba(255,255,255,.78);max-width:34em;margin:0 auto 3.4rem;line-height:2.3;font-size:.93rem;letter-spacing:.04em}
  .contact .btn.solid{background:var(--white);color:var(--ink);border-color:var(--white)}
  .contact .btn.solid:hover{background:transparent;color:var(--white)}

  /* ================= footer ================= */
  footer{background:var(--ink);color:rgba(255,255,255,.68);border-top:1px solid var(--line-dark);padding:clamp(3rem,6vw,4.5rem) 0}
  footer .f-top{display:flex;justify-content:space-between;flex-wrap:wrap;gap:2rem;margin-bottom:3rem}
  footer .brand{color:var(--white)}
  footer nav{gap:clamp(1rem,2.4vw,2.2rem);flex-wrap:wrap}
  footer nav a{color:rgba(255,255,255,.68)}
  footer nav a:hover{color:var(--white);opacity:1}
  .f-bottom{
    display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;
    font-size:.7rem;letter-spacing:.12em;color:rgba(255,255,255,.45);
    border-top:1px solid var(--line-dark);padding-top:2rem;
  }
  .f-social{display:flex;gap:1.5rem;text-transform:uppercase;font-size:.7rem;letter-spacing:.16em}
  .f-social a:hover{color:var(--white)}

  /* prototype ribbon */
  .proto-note{
    position:fixed;bottom:0;left:0;right:0;z-index:60;
    background:var(--ink);color:rgba(255,255,255,.85);
    font-size:.68rem;letter-spacing:.06em;text-align:center;
    padding:.5rem 1rem;border-top:1px solid var(--line-dark);
  }
  .proto-note b{color:#fff;font-weight:500}
  .proto-note button{
    background:none;border:1px solid var(--line-dark);color:#fff;
    margin-left:1rem;padding:.2rem .8rem;font-size:.64rem;cursor:pointer;letter-spacing:.1em;
  }
/* ================= subpages ================= */
.page-hero{position:relative;height:68vh;min-height:520px;display:flex;align-items:flex-end;color:var(--white);overflow:hidden;background:var(--ink)}
.page-hero .ph-bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:brightness(.6) contrast(1.04)}
.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,9,8,.72) 0%,rgba(10,9,8,.12) 60%)}
.page-hero .wrap{position:relative;z-index:2;width:100%;padding-bottom:clamp(3rem,6vw,5rem)}
.page-hero .p-cat{font-family:var(--en);font-size:.8rem;letter-spacing:.32em;text-transform:uppercase;opacity:.85;margin-bottom:1.3rem}
.page-hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.1rem,5.2vw,3.8rem);letter-spacing:.08em;line-height:1.4}
.page-hero .p-sub{margin-top:1.1rem;color:rgba(255,255,255,.86);font-size:.95rem;letter-spacing:.06em}

.store-logo{height:clamp(2.6rem,5vw,3.6rem);width:auto;margin-bottom:2rem}
.logo-row{display:flex;gap:2.2rem;align-items:center;margin-bottom:2rem;flex-wrap:wrap}
.logo-row img{height:clamp(2.4rem,4.5vw,3.2rem);width:auto}

.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.gallery figure{margin:0;overflow:hidden}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform 1.2s var(--ease)}
.gallery figure:hover img{transform:scale(1.04)}
.gallery figcaption{font-family:var(--en);font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gray);padding-top:.8rem}
@media(max-width:760px){.gallery{grid-template-columns:1fr}}

.menu-list{border-top:1px solid var(--line);max-width:46rem}
.menu-item{display:flex;align-items:baseline;gap:1.2rem;padding:1.4rem 0;border-bottom:1px solid var(--line-soft)}
.m-name{font-family:var(--serif);font-size:1rem;letter-spacing:.06em}
.m-note{font-size:.75rem;color:var(--gray)}
.m-dots{flex:1;border-bottom:1px dotted var(--gray-light);transform:translateY(-5px);min-width:2rem}
.m-price{font-family:var(--en);font-size:1rem;letter-spacing:.04em;white-space:nowrap}
.menu-note{margin-top:1.5rem;font-size:.78rem;color:var(--gray);letter-spacing:.04em}

.lite-links{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:2.4rem}
.lite-links a{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;padding:.65rem 1.3rem;border:1px solid var(--line);color:var(--ink);transition:.4s var(--ease)}
.lite-links a:hover{background:var(--ink);color:var(--white);border-color:var(--ink)}

.alt{background:var(--white)}

.pillars{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.pillar{background:var(--white);border:1px solid var(--line);padding:clamp(1.8rem,3.5vw,2.8rem)}
.pillar .en{font-family:var(--en);font-size:.75rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gray);display:block;margin-bottom:1rem}
.pillar h3{font-family:var(--serif);font-weight:500;font-size:clamp(1.15rem,2vw,1.45rem);letter-spacing:.05em;margin-bottom:1rem}
.pillar p{font-size:.9rem;color:var(--ink-soft);line-height:2.15}
@media(max-width:760px){.pillars{grid-template-columns:1fr}}

.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.case-card{display:block;position:relative;overflow:hidden}
.case-card img{width:100%;aspect-ratio:4/3;object-fit:cover;filter:brightness(.72);transition:transform 1.2s var(--ease),filter .6s}
.case-card:hover img{transform:scale(1.04);filter:brightness(.88)}
.case-card .cc-txt{position:absolute;left:1.4rem;bottom:1.2rem;color:#fff}
.case-card .cc-txt .en{font-family:var(--en);font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;opacity:.8;display:block;margin-bottom:.4rem}
.case-card .cc-txt b{font-family:var(--serif);font-weight:400;font-size:1.05rem;letter-spacing:.08em}
@media(max-width:760px){.case-grid{grid-template-columns:1fr}}

.soon-note{border:1px solid var(--line);padding:clamp(2rem,4vw,3rem);max-width:44rem;color:var(--ink-soft);font-size:.95rem;line-height:2.3}

/* ================= contact form ================= */
.form{max-width:44rem;display:grid;gap:1.4rem}
.form label{display:block;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gray);margin-bottom:.5rem}
.form input,.form select,.form textarea{
  width:100%;background:var(--white);border:1px solid var(--line);
  padding:.9rem 1rem;font-family:var(--sans);font-size:.92rem;color:var(--ink);
  letter-spacing:.03em;border-radius:0;-webkit-appearance:none;appearance:none;
}
.form textarea{min-height:9rem;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--ink);outline-offset:1px}
.form .f2{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
@media(max-width:640px){.form .f2{grid-template-columns:1fr}}
.form .submit{
  justify-self:start;background:var(--ink);color:var(--white);border:1px solid var(--ink);
  padding:1rem 2.6rem;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;
  transition:.35s var(--ease);
}
.form .submit:hover{background:transparent;color:var(--ink)}
.form-note{font-size:.76rem;color:var(--gray);letter-spacing:.04em}

/* TOP brand preview grid (4 cards) */
.case-grid.four{grid-template-columns:repeat(4,1fr)}
@media(max-width:1000px){.case-grid.four{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.case-grid.four{grid-template-columns:1fr}}
.brands .link-under{color:var(--white);border-color:rgba(255,255,255,.55);margin-top:2.6rem;display:inline-flex}

/* ================= logo images ================= */
.brand img{height:22px;width:auto;display:block}
.brand .lg-b{display:none}
header.solid .lg-w{display:none}
header.solid .lg-b{display:block}
header.menu-open .lg-w{display:block}
header.menu-open .lg-b{display:none}
footer .brand img{height:20px}

/* contact form result message */
.form-msg{max-width:44rem;margin-bottom:2rem;padding:1.1rem 1.4rem;font-size:.9rem;line-height:1.9;letter-spacing:.03em;border:1px solid var(--line)}
.form-msg.ok{border-color:var(--ink);background:var(--white)}
.form-msg.ng{border-color:#a33;color:#a33;background:var(--white)}

/* ================= recruit page ================= */
.gallery.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.gallery.g4{grid-template-columns:repeat(2,1fr)}}
.loc-h{font-family:var(--serif);font-weight:500;font-size:clamp(1.05rem,1.8vw,1.3rem);
  letter-spacing:.08em;margin:clamp(4.5rem,9vw,7rem) 0 1.4rem}
.loc-h:first-of-type{margin-top:0}
.loc-h .en{font-family:var(--en);font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;
  color:var(--gray);margin-left:1rem}
.menu-item a.m-price{border-bottom:1px solid var(--ink);padding-bottom:2px;
  font-family:var(--sans);font-size:.78rem;letter-spacing:.14em;transition:opacity .3s;white-space:nowrap}
.menu-item a.m-price:hover{opacity:.55}

/* photo band (TOP produce strip) */
.photo-band{position:relative;overflow:hidden;color:var(--white)}
.photo-band .bg{position:absolute;inset:0;background-size:cover;background-position:center 50%;filter:brightness(.4) contrast(1.04)}
.photo-band .wrap{position:relative;z-index:2}
.photo-band .eyebrow{color:rgba(255,255,255,.75)}
.photo-band .eyebrow::before{background:rgba(255,255,255,.4)}
.photo-band p{color:var(--white)}
.photo-band .link-under{color:var(--white);border-color:rgba(255,255,255,.6)}

/* Google Map 埋め込み（レスポンシブ） */
.map-embed{margin-top:clamp(2rem,4vw,3rem);border:1px solid var(--line);line-height:0}
.map-embed iframe{width:100%;height:min(52vw,440px);border:0;display:block;filter:grayscale(1) contrast(1.05)}
.map-embed:hover iframe{filter:none}

/* 説明つきメニュー（ソウル店など） */
.menu-cat{font-family:var(--en);font-size:.78rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--gray);margin:clamp(2.6rem,5vw,3.6rem) 0 .6rem;padding-bottom:.9rem;border-bottom:1px solid var(--line)}
.menu-cat:first-of-type{margin-top:0}
.menu-d{padding:1.3rem 0;border-bottom:1px solid var(--line-soft)}
.menu-d .mrow{display:flex;align-items:baseline;gap:1rem}
.menu-d .m-name{font-family:var(--serif);font-size:1.02rem;letter-spacing:.05em}
.menu-d .m-dots{flex:1;border-bottom:1px dotted var(--gray-light);transform:translateY(-5px);min-width:1.5rem}
.menu-d .m-price{font-family:var(--en);font-size:1rem;letter-spacing:.04em;white-space:nowrap}
.menu-d .m-desc{font-size:.82rem;color:var(--gray);line-height:1.9;margin-top:.5rem;max-width:46em}

html[lang="ko"] .chef-name .en{display:none}

/* スマホ専用の改行 */
.sp-br{display:none}
@media(max-width:600px){.sp-br{display:inline}}
