  :root{
    --paper:#F4F1EA;
    --paper-deep:#EDE8DD;
    --ink:#1E2A33;
    --ink-soft:#4B5860;
    --ink-faint:#7C8890;
    --brass:#A9793C;
    --brass-deep:#8A6129;
    --sage:#5C7A6E;
    --sage-deep:#456155;
    --line:rgba(30,42,51,0.12);
    --card:#FFFFFF;
    --radius:2px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Noto Sans JP',sans-serif;
    font-weight:400;
    line-height:1.85;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.serif{
    font-family:'Shippori Mincho',serif;
    font-weight:600;
    line-height:1.5;
    margin:0;
  }
  a{color:inherit;text-decoration:none;}
  .wrap{max-width:1140px;margin:0 auto;padding:0 32px;}
  .eyebrow{
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-size:12.5px;
    letter-spacing:.22em;
    color:var(--brass-deep);
    font-weight:600;
    margin-bottom:20px;
  }
  .eyebrow::before{content:"";width:28px;height:1px;background:var(--brass-deep);display:inline-block;}

  /* ---------- Header ---------- */
  header{
    position:sticky;top:0;z-index:500;
    background:rgba(244,241,234,0.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  .nav-row{
    display:flex;align-items:center;justify-content:space-between;
    height:74px;
  }
  .logo{
    font-family:'Shippori Mincho',serif;
    font-size:22px;
    font-weight:700;
    letter-spacing:.05em;
    color:var(--ink);
    display:flex;align-items:center;
  }
  .logo span{color:var(--brass-deep);}
  .logo img{display:block;height:36px;width:auto;}
  .foot-cols .logo img{height:32px;margin-bottom:6px;}
  nav.primary{display:flex;gap:40px;align-items:center;}
  nav.primary a{
    font-size:14px;font-weight:500;letter-spacing:.04em;
    position:relative;padding:4px 0;color:var(--ink-soft);
    transition:color .25s;
  }
  nav.primary a:hover{color:var(--ink);}
  nav.primary a::after{
    content:"";position:absolute;left:0;bottom:-3px;width:0;height:1px;
    background:var(--brass);transition:width .3s;
  }
  nav.primary a:hover::after{width:100%;}
  .network-toggle{position:relative;}
  .network-btn{
    display:flex;align-items:center;gap:6px;
    font-size:13px;font-weight:600;color:var(--card);
    background:var(--ink);padding:9px 18px;border-radius:var(--radius);
    cursor:pointer;border:none;letter-spacing:.03em;
    transition:background .25s;
  }
  .network-btn:hover{background:var(--sage-deep);}
  .network-panel{
    position:absolute;right:0;top:calc(100% + 12px);
    width:280px;background:var(--card);
    border:1px solid var(--line);border-radius:var(--radius);
    box-shadow:0 18px 40px rgba(30,42,51,0.12);
    padding:10px 0;
    opacity:0;visibility:hidden;transform:translateY(-6px);
    transition:all .22s;
  }
  .network-toggle.open .network-panel{opacity:1;visibility:visible;transform:translateY(0);}
  .network-panel a{
    display:flex;justify-content:space-between;align-items:center;
    padding:11px 20px;font-size:13.5px;color:var(--ink-soft);
    border-bottom:1px solid var(--line);
  }
  .network-panel a:last-child{border-bottom:none;}
  .network-panel a:hover{background:var(--paper);color:var(--ink);}
  .network-panel small{color:var(--ink-faint);font-size:11px;}
  .burger{display:none;background:none;border:none;cursor:pointer;padding:8px;}
  .burger span{display:block;width:24px;height:1.5px;background:var(--ink);margin:5px 0;}

  /* ---------- Hero ---------- */
  .hero{
    position:relative;overflow:hidden;
    padding:120px 0 100px;
  }
  .hero-grid{
    display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;
  }
  .hero .eyebrow{color:var(--sage-deep);}
  .hero .eyebrow::before{background:var(--sage-deep);}
  .hero h1{
    font-size:44px;
    color:var(--ink);
    margin-bottom:22px;
  }
  .hero h1 em{
    font-style:normal;color:var(--brass-deep);
  }
  .hero p.lead{
    font-size:15.5px;color:var(--ink-soft);max-width:440px;margin-bottom:34px;
  }
  .hero-ctas{display:flex;gap:16px;}
  .btn{
    display:inline-flex;align-items:center;gap:8px;
    padding:14px 28px;font-size:13.5px;font-weight:600;letter-spacing:.03em;
    border-radius:var(--radius);transition:all .25s;
  }
  .btn-primary{background:var(--ink);color:var(--paper);}
  .btn-primary:hover{background:var(--brass-deep);}
  .btn-ghost{border:1px solid var(--ink);color:var(--ink);}
  .btn-ghost:hover{background:var(--ink);color:var(--paper);}

  /* circulation motif */
  .orbit-wrap{position:relative;width:100%;aspect-ratio:1/1;max-width:420px;margin:0 auto;}
  .orbit-ring{position:absolute;inset:0;border:1px solid var(--line);border-radius:50%;}
  .orbit-ring.r2{inset:44px;}
  .orbit-ring.r3{inset:88px;border-style:dashed;border-color:rgba(169,121,60,.35);}
  .orbit-core{
    position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
    flex-direction:column;text-align:center;
  }
  .orbit-core::before,.orbit-core::after{
    content:"";width:34px;height:1px;background:var(--brass);opacity:.55;
  }
  .orbit-core::before{margin-bottom:16px;}
  .orbit-core::after{margin-top:16px;}
  .orbit-core .num{font-family:'Shippori Mincho',serif;font-size:17px;color:var(--ink);letter-spacing:.32em;padding-left:.32em;}
  .orbit-spin{
    position:absolute;inset:0;
    animation:spin 44s linear infinite;
  }
  @media (prefers-reduced-motion:reduce){.orbit-spin{animation:none;}}
  @keyframes spin{to{transform:rotate(360deg);}}
  .orbit-icon{
    position:absolute;width:52px;height:52px;background:var(--card);
    border:1px solid var(--line);border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 8px 20px rgba(30,42,51,.07);
  }
  .orbit-icon svg{width:22px;height:22px;stroke:var(--brass-deep);fill:none;stroke-width:1.4;}
  .orbit-icon img{width:26px;height:26px;object-fit:contain;border-radius:5px;}
  .orbit-icon.i1{top:-26px;left:50%;transform:translateX(-50%);}
  .orbit-icon.i2{top:50%;right:-26px;transform:translateY(-50%);}
  .orbit-icon.i3{bottom:-26px;left:50%;transform:translateX(-50%);}
  .orbit-icon.i4{top:50%;left:-26px;transform:translateY(-50%);}
  .orbit-icon svg{transform:rotate(0);}
  .orbit-icon{animation:counter-spin 44s linear infinite;}
  @keyframes counter-spin{to{transform:rotate(-360deg) translateX(0);}}

  /* ---------- Philosophy band ---------- */
  .mind{
    background:var(--ink);color:var(--paper);
    padding:96px 0;position:relative;
  }
  .mind .eyebrow{color:#C99A5B;}
  .mind .eyebrow::before{background:#C99A5B;}
  .mind h2{
    font-size:32px;color:#fff;max-width:640px;
  }
  .mind-row{display:grid;grid-template-columns:1.2fr .8fr;gap:60px;align-items:end;}
  .mind p.sub{color:rgba(244,241,234,.68);font-size:15px;margin-top:26px;max-width:520px;}
  .mind a.more{
    display:inline-flex;align-items:center;gap:8px;margin-top:34px;
    font-size:13.5px;font-weight:600;letter-spacing:.03em;color:#fff;
    border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:6px;
  }
  .mind a.more:hover{border-color:#fff;}
  .mind-quote{
    font-family:'Shippori Mincho',serif;font-size:17px;line-height:2;
    color:rgba(244,241,234,.85);border-left:1px solid rgba(201,154,91,.5);
    padding-left:26px;
  }

  /* ---------- Sections generic ---------- */
  section.block{padding:110px 0;}
  .head-row{
    display:flex;justify-content:space-between;align-items:flex-start;
    margin-bottom:56px;gap:32px;flex-wrap:wrap;
  }
  .head-row h2{font-size:30px;}
  .head-row p{color:var(--ink-soft);font-size:14.5px;max-width:420px;}
  .head-more{
    display:inline-flex;align-items:center;gap:6px;margin-top:14px;
    font-size:12.5px;font-weight:600;color:var(--brass-deep);
    letter-spacing:.02em;border-bottom:1px solid var(--brass);padding-bottom:2px;
  }
  .head-more::after{content:"→";transition:transform .2s;}
  .head-more:hover::after{transform:translateX(4px);}

  /* ---------- Business cards ---------- */
  .biz-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
    background:var(--line);border:1px solid var(--line);
  }
  .biz-card{
    background:var(--card);padding:38px 34px;
    display:flex;flex-direction:column;gap:16px;
    transition:background .25s;
  }
  .biz-card:hover{background:var(--paper-deep);}
  .biz-icon{
    width:46px;height:46px;border-radius:50%;
    background:var(--paper-deep);display:flex;align-items:center;justify-content:center;
  }
  .biz-icon svg{width:20px;height:20px;stroke:var(--brass-deep);fill:none;stroke-width:1.5;}
  .biz-icon img{width:22px;height:22px;object-fit:contain;border-radius:4px;}
  .biz-card h3{font-size:18px;}
  .biz-card p{font-size:13.5px;color:var(--ink-soft);flex:1;}
  .biz-card .site-link{
    font-size:12.5px;font-weight:600;color:var(--sage-deep);
    display:inline-flex;align-items:center;gap:6px;letter-spacing:.02em;
  }
  .biz-card .site-link::after{content:"";transition:transform .2s;}
  .biz-card:hover .site-link::after{transform:translateX(4px);}

  /* ---------- Store gallery ---------- */
  .shops{background:var(--paper);}
  .shop-grid{
    display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
    background:var(--line);border:1px solid var(--line);
  }
  .shop-card{background:var(--card);}
  .shop-photo{
    aspect-ratio:4/3;overflow:hidden;background:var(--paper-deep);
  }
  .shop-photo a{display:block;width:100%;height:100%;}
  .shop-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s;}
  .shop-card:hover .shop-photo img{transform:scale(1.05);}
  .shop-info{padding:18px 20px 24px;}
  .shop-info .name{font-family:'Shippori Mincho',serif;font-size:15.5px;margin-bottom:6px;}
  .shop-info .addr{font-size:12px;color:var(--ink-faint);line-height:1.7;}

  /* ---------- Company ---------- */
  .company{background:var(--paper-deep);}
  .basic-info{
    display:grid;grid-template-columns:repeat(4,1fr);
    border-top:1px solid var(--line);border-bottom:1px solid var(--line);
    margin-bottom:64px;
  }
  .basic-info div{padding:24px 0;border-right:1px solid var(--line);}
  .basic-info div:last-child{border-right:none;}
  .basic-info .label{font-size:11.5px;letter-spacing:.1em;color:var(--ink-faint);margin-bottom:8px;margin-left:8px;}
  .basic-info .val{font-size:14.5px;font-weight:500;margin-left:8px;}
  .div-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  .div-card{
    background:var(--card);padding:32px 30px;border:1px solid var(--line);
    position:relative;
  }
  .div-card .tag{
    font-family:'Shippori Mincho',serif;font-size:13px;color:var(--brass-deep);
    letter-spacing:.05em;margin-bottom:14px;display:block;
  }
  .div-card h3{font-size:17px;margin-bottom:14px;}
  .div-card p{font-size:13.5px;color:var(--ink-soft);margin-bottom:20px;}
  .div-card a.detail{font-size:12.5px;font-weight:600;color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:3px;}

  /* ---------- Recruit ---------- */
  .recruit{
    background:var(--ink);color:var(--paper);
    padding:80px 0;
  }
  .recruit-row{
    display:flex;justify-content:space-between;align-items:center;gap:40px;flex-wrap:wrap;
  }
  .recruit .eyebrow{color:#8FB0A2;}
  .recruit .eyebrow::before{background:#8FB0A2;}
  .recruit h2{font-size:26px;color:#fff;margin-bottom:14px;}
  .recruit p{color:rgba(244,241,234,.7);font-size:14px;max-width:460px;}
  .recruit .btn-primary{background:var(--brass);color:var(--ink);}
  .recruit .btn-primary:hover{background:#fff;}

  /* ---------- Footer ---------- */
  footer{padding:56px 0 40px;}
  .foot-row{
    display:flex;justify-content:center;align-items:center;
    padding-top:32px;border-top:1px solid var(--line);
    font-size:12.5px;color:var(--ink-faint);flex-wrap:wrap;gap:16px;
  }
  .foot-cols{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;margin-bottom:40px;}
  .foot-cols .logo{margin-bottom:14px;}
  .foot-cols p{font-size:13px;color:var(--ink-soft);max-width:280px;}
  .foot-cols h4{font-size:12px;letter-spacing:.1em;color:var(--ink-faint);margin-bottom:16px;}
  .foot-cols a{display:block;font-size:13.5px;color:var(--ink-soft);margin-bottom:11px;}
  .foot-cols a:hover{color:var(--brass-deep);}

  .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease, transform .7s ease;}
  .reveal.in{opacity:1;transform:translateY(0);}

  /* ---------- Page hero (subpages) ---------- */
  .page-hero{
    padding:64px 0 76px;
    border-bottom:1px solid var(--line);
  }
  .breadcrumb{
    font-size:12px;color:var(--ink-faint);margin-bottom:28px;
    display:flex;align-items:center;gap:8px;
  }
  .breadcrumb a{color:var(--ink-soft);}
  .breadcrumb a:hover{color:var(--brass-deep);}
  .breadcrumb span{color:var(--ink-faint);}
  .page-hero .eyebrow{color:var(--sage-deep);}
  .page-hero .eyebrow::before{background:var(--sage-deep);}
  .page-hero h1{font-size:36px;line-height:1.5;}
  @media (max-width:960px){
    .page-hero h1{font-size:28px;}
  }
  @media (max-width:680px){
    .page-hero{padding:48px 0 56px;}
  }

  @media (max-width:960px){
    .hero-grid{grid-template-columns:1fr;}
    .orbit-wrap{margin-top:40px;max-width:300px;}
    .mind-row{grid-template-columns:1fr;gap:30px;}
    .biz-grid{grid-template-columns:repeat(2,1fr);}
    .shop-grid{grid-template-columns:repeat(2,1fr);}
    .basic-info{grid-template-columns:repeat(2,1fr);}
    .basic-info div:nth-child(2){border-right:none;}
    .div-grid{grid-template-columns:1fr;}
    .foot-cols{grid-template-columns:1fr;gap:24px;}
  }
  @media (max-width:680px){
    nav.primary{display:none;}
    .burger{display:block;}
    .biz-grid{grid-template-columns:1fr;}
    .shop-grid{grid-template-columns:1fr;}
    .hero{padding:70px 0 60px;}
    .hero h1{font-size:32px;}
    .wrap{padding:0 22px;}
    section.block{padding:70px 0;}
  }